POSTS
GPU EATERのJupyter NotebookにWindowsクライアントからアクセスする
Introduction
GPU EATERを利用されるユーザーの中には、Windows端末を利用される方もいらっしゃるかと思います。 そこで今回は「GPU EATERインスタンス内で起動したJupyter NotebookにWindowsクライアント上のブラウザからアクセスする」 方法について説明していきたいと思います。
本項で説明すること・しないこと
本項では次の内容について説明を行います。
- Windows用仮想ターミナル(TeraTermを利用)でのポートフォワーディングを有効としたGPU EATERインスタンスへの接続
- Windows端末上ブラウザでGPU EATERインスタンス内のJupyter Notebookにアクセスする為の各種設定
ただし、以下の内容
- 公開鍵・秘密鍵の作成方法
- TeraTermの基本設定・マクロ構文
- TeraTerm以外のWindows用仮想ターミナルソフト
については説明を省略させていただきます。
Windows用仮想ターミナルの設定
はじめに、Windows用仮想ターミナルを利用してGPU EATERに接続する際、通常ではGPU EATERインスタンスのローカルホスト:8080番ポートで行われるJupyter Notebookの通信をWindows端末側のローカルホスト:8080番ポートに展開する「ポートフォワーディング」を行う方法について説明していきます。
TeraTerm用マクロの設定
TeraTermには複数のパラメータを利用するためのマクロが存在しております。今回はそれを利用してTeraTermでポートフォワード接続を確立します。
まずテキストエディタ(例・メモ帳)を開いて以下の内容を入力します。なお、カッコ内はそれぞれ「GPU EATERインスタンスのIPアドレス」 「接続に利用するSSH秘密鍵のパス」と書き換えてください。
username = 'root'
hostname = '(ip4 address)'
keyfile = '(/path/to/private_key)'
msg = hostname
strconcat msg ':22 /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile
strconcat msg ' /ssh-L8888:localhost:8888'
connect msg
作成したテキストファイルを’gpueater.ttl’という名称で保存した上で、ttl拡張子をTtmacro.exeと関連付けを行います。 ないしは指定したファイルで開くで、Ttmmacro.exeを選択します。
その後gpueater.ttlをダブルクリックすると、localhost:8888にGPU EATER上のlocalhost:8888で展開されている通信をポートフォワーディングした状態で接続ができます。
(おまけ)SSHコマンドで接続する場合
SSHコマンドを利用する場合は、次のコマンドで問題なく接続ができます。
”’ ssh root@(ip4 address) -p 22 -L 8888:localhost:8888 -i (/path/to/private_key) “’
jupyter環境のセキュリティ設定
次に、GPU EATER上のjupyter Notebook環境の各種設定を行い、Windows端末上のブラウザから操作を可能にするための各種設定を行います。
jupyter Notebook設定ファイルの作成(クラウド側作業の場合)
最初に、GPUEATERインスタンス内で作業を完結させる場合の方法を説明します。
事前準備
GPU EATER上でjupyterの編集作業をする場合、GPU EATERインスタンスに編集に用いやすいソフトウェアをインストールするのが良いでしょう。 Windows端末からGPU EATERインスタンスに上記の手順でインスタンスにアクセスしたのち
- ターミナル上で利用しやすいLinux用テキストエディタ
- または、sedツールによる文字列の置換
により、設定ファイルを編集します。
jupyter設定ファイルの作成
GPUEATERインスタンスにログインしたら、次のコマンドを実行します
jupyter notebook --generate-config
上記のコマンドを実行することで、jupyter Notebookのコンフィグファイルが生成されます。生成先は/root/.jupyter/jupyter_notebook_config.pyとなります。
Configの修正
生成したjupyter Notebookの以下の項目を修正します。
c.NotebookApp.ip = 'localhost'
c.NotebookApp.open_browser = False
c.NotebookApp.password = '(password)'
c.NotebookApp.token = u''
設定ファイルの当該項目の文頭にある’#‘を外した上で各パラメータを入力していきます。 または、次のコマンドをGPUEATERと接続しているターミナルで実行することでコンフィグ内の設定をエディタなしで変更します。
”’
sed -i.back
-e “s:^#c.NotebookApp.token = .$:c.NotebookApp.token = u”:”
-e “s:^#c.NotebookApp.ip = .$:c.NotebookApp.ip = ‘localhost’:”
-e “s:^#c.NotebookApp.open_browser = .$:c.NotebookApp.open_browser = False:”
-e “s:^#c.NotebookApp.password = .$:c.NotebookApp.password = ‘(password)’:”
/root/.jupyter/jupyter_notebook_config.py
“’
以上で、初期ログインの際にハッシュを求められることなく、パスワードによるログインが可能になります。
GPU EATERに接続しているターミナルより、次のコマンドを実行すると、GPU EATER上でjupyter notebookが起動します。
$ jupyter notebook --allow-root
その後、Windowsのブラウザ上でlocalhost:8888に接続すると、GPU EATER上のjupyter notebookを操作できる様になります。
ローカル上でのコンフィグファイル修正
Windows端末上でコンフィグファイルを作成し、GPU EATER上にファイルを配置する事で設定を変更することもできます。 その際、jupyterを起動していない場合は設定ファイルを配置するディレクトリが作成されていないため、あらかじめディレクトリを作成しておく必要があります。
$ cd ~
$ mkdir .jupyter
その後、ファイル転送等で作成したコンフィグファイルを/root/.jupyter/jupyter_notebook_config.pyに配置してください。