機械学習に使うGPUサーバをAWS上のPrivateSubnetに置いているので、直接JupyterNotebookやTensorBoardを使う事はできません。
そこでSSHトンネルを作って外から接続できないGPUサーバへ踏み台サーバを経由して接続できるようにします。
ローカルフォワード
ローカルフォワードは良く使われる方法で、通信を踏み台サーバ(ここではBastianサーバ)から別の宛先に転送する
設定
- 源ポート:19999(localhostで使用するポートを記載)
※空いているポートであれば何でもOK - 送り先:10.0.0.24:19999(SSHサーバが転送する先を指定する)
※プライベートIPが10.0.0.24/JupyterNotebookで使うポートが19999(TensorBoardを使う時はポート:6006) - ローカル/自動を選択
開くをクリックしてSSH接続を開始する
手順
まずGPUインスタンスに踏み台サーバより接続してJupyterNotebookを起動する
$ ssh GPU #GPUインスタンスに接続
$ source activate TensorFlow-GPU #Anacondaの仮想環境を起動
$ jupyter notebook #JupyterNotebookを起動
以下のURLにブラウザで接続
http://localhost:19999/?token=××××××××××××××××××××××
これでlocalhostのポート:19999にブラウザから接続するとGPUサーバ(プライベートIP:10.0.0.24/ポート:19999)に転送されてブラウザからGPUサーバにあるJupyterNotebookやTensorBoardを使える
参考
【SSH】ポートフォワーディングを使って作業が捗る putty編
SSHポートフォワード(SSHトンネル)【ローカル・リモート・ダイナミック総集編】