MobaXtermでEC2インスタンスとポートフォワーディング[MobaXterm][EC2][AWS]

EC2のインスタンスにjupyterを介してアクセスしたかったので,MobaXtermのポートフォワーディング機能を使った.

設定が非常に簡単なのでぜひ試してほしい.

MobaXtermでの設定

お手持ちのノートPCなどにMobaXtermをインストールしよう.

mobaxterm.mobatek.net

インストール後,上のバーの「Tunneling」というボタンを押し,「New SSH tunnel」のボタンを押すとGUIで分かりやすく構成された設定画面が出てくるはずだ.

参考までに筆者の設定値を下に載せる.

他に設定した項目としては,

local network adapterを 127.0.0.1 に変更

Web proxyを設定

Auto start と Autoreconnectをオンに設定

である.

後は,スタートボタンを押すとポートフォワーディングが実行される.

EC2でjupyterを起動

EC2上のインスタンスで,jupyter notebook のコマンドを打って,jupyterを起動.

デフォルトでは,8888番ポートに繋がる.

もし別のポートに繋げたい場合は,jupyter notebook --ip=0.0.0.0 --port=8080 などと打てばok.

ポート番号指定に関しては,下記も参考にするとよい.

Running jupyter notebook gives me: OSError: Cannot assign requested address · Issue #2427 · codenvy/codenvy · GitHub

で,コマンドを打った後には,以下の出力がでてくる.でてこなければ,残念! 設定を見直す必要がある.

ubuntu@ip-xxx-xx-xx-xxx:~/tmp$ jupyter notebook
Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
JupyterLab extension loaded from /home/ubuntu/.pyenv/versions/anaconda3-5.3.0/lib/python3.7/site-packages/jupyterlab
JupyterLab application directory is /home/ubuntu/.pyenv/versions/anaconda3-5.3.0/share/jupyter/lab
Serving notebooks from local directory: /home/ubuntu/tmp
The Jupyter Notebook is running at:
http://localhost:8888/?token=xxxx # ここにjupyterのtokenが出現
Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
No web browser found: could not locate runnable browser. # EC2上で動かしているのでブラウザが無いとのメッセージがでるが,全く問題ない
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=abe7986ff1e1eb7eea9ac16e6d90ca1ee6696cca9f613824
302 GET / (127.0.0.1) 0.78ms
Clearing invalid/expired login cookie username-localhost-8888
Clearing invalid/expired login cookie username-localhost-8888
302 GET /tree? (127.0.0.1) 1.48ms

お手持ちのPCでEC2インスタンス上のjupyterにアクセス

ここまでくれば,後はお手持ちのノートPCでchromefirefoxを起動し,アドレスバーに http://localhost:8888 を打てば,jupyterの画面が出てくるはずだ.

筆者の画面では,初回起動であったため,パスワード変更が求められた.この画面がでても焦る必要はない.先ほどjupyter notebook のコマンドを打ったときの出力にtokenが書かれているので,それと任意のNewPasswordを設定するだけで解決するのだから.

以上.お疲れ様でした.