SSHポートフォワードを利用してGPUサーバを使う

  • 0
    Like
  • 0
    Comment

    機械学習に使う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)
    • ローカル/自動を選択

    1.png

    開くをクリックして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トンネル)【ローカル・リモート・ダイナミック総集編】