読者です 読者をやめる 読者になる 読者になる

AWSでjupyter notebookを利用してローカルからアクセスする

メモ

すること

Amazon Web Servicedで GPUインスタンスを利用する。 jupyter notebook をローカルからアクセスしたい。

やること

とりあえずインスタンスを立ち上げる

paper.hatenadiary.jp

sshの設定を記述する。

$ vim ~/.ssh/config にて

Host aws_a
hostname ec2-_____.us-west-2.compute.amazonaws.com
identityfile ~/.ssh/_____.pem 
user ec2-user

Host aws_b
hostname ec2-_____.us-west-2.compute.amazonaws.com
LocalForward 8889 ec2-_____.us-west-2.compute.amazonaws.com:8888
identityfile ~/.ssh/_____.pem 
user ec2-user

hostnameにはインスタンスのパブリックDNSを、identityfileはユーザー画面からダウンロードした pemファイルを指定します。

AWSにて jupyter notebookの設定

ssh aws_a を実行すればAWSに接続できます。そのあと、以下の記事を参照にして設定。

qiita.com

... しかしなぜか肝心のパスワード関係がはしょっている。以下のようにして設定

$ jupyter notebook --generate-config
$ source activate root
$ ipython

このあと

In [1]: from notebook.auth import passwd
In [2]: passwd()

と入力するとパスワード入力を求められます。

Enter password:
Verify password: XXXXXX

Out[2]: 'sha1:fihiofqiohofhqifhq'

この sha1:fihiofqiohofhqifhqをコピーして ~/.jupyter/jupyter_notebook_config.pyを編集。

~/.jupyter/jupyter_notebook_config.py

c.NotebookApp.ip ='*'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
c.NotebookApp.password = `sha1:fihiofqiohofhqifhq`

とする。

jupyter notebook 立ち上げ

awsにて THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 nohup jupyter notebook --port 8888 &を実行。一旦 exit して 接続を切る。

ローカルフォワードで接続

ssh aws_bとする。そのあとローカルにて localhost:8889 とすれば、パスワードを求められて awsのjupyter notebookにアクセスできます。

theano, tensorflow等をインストール

Download and Setuptensor flow. theano は pip install theano.

cuda をインストール

paper.hatenadiary.jp