CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する上でうまくいかなかったことと,その対策をまとめる自分用のメモが中心.

AWSのサーバーでJupyterを動かす[AWS][Jupyter]

f:id:Vastee:20181220134750p:plain

AWSにサーバーを立てて、Jupyterをインストールした時のことをレポート。

まずは、LightsailでAWSにサーバーを立てる。

Lightsailサーバーのインストール自体はすごく簡単で、料金も月3.5ドル〜と安価なので、気軽に使えると思う。

aws.amazon.com

次に、立てたサーバーにsshログインし、

pip install jupyter

を打ち込む。

次に、ipythonでJupyterログイン用のパスワードを生成。

ここで生成したパスワードは後で使うのでメモしておく。

ipythonコマンドを打ち込み、ipythonコンソールを起動。

以下のコマンドで、パッシュ化されたパスワードを生成。

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: [任意のパスワードを入力]
Verify password: [確認のため再度入力]
Out[2]: 'sha1: [ハッシュ化されたパスワード]'

Jupyter内で生成されるファイルの保存先を生成。

mkdir ~/.jupyter

そして設定ファイルの編集。

vim ~/.jupyter/jupyter_notebook_config.py

jupyter_notebook_config.py

c = get_config()

# Notebook上でplotを表示できるようにする
c.IPKernelApp.pylab = 'inline'
# リモートアクセスを許可
c.NotebookApp.allow_remote_access = True
# 全てのIPから接続を許可
c.NotebookApp.ip = '*'
# IPython notebookのログインパスワード (序盤に生成したハッシュ化されたパスワード)
c.NotebookApp.password = 'sha1:xxxx'
# 起動時にブラウザを起動させるかの設定
c.NotebookApp.open_browser = True
# ポート指定 (ここでは8888に設定)
c.NotebookApp.port = 8888

設定後、jupyter notebookを入力し、Jupyterを起動する。

次に、AWS lightsailのコンソール上でインスタンスのネットワーク設定を開く。

その中のファイアウォールのポートを追加。

今回はポートを8888に設定したので、Custom TCP 8888を追加。

f:id:Vastee:20190421095730p:plain

上の画面で静的アドレスを確認し、ChromeなどのWebブラウザの入力欄にアドレス:ポート(例 http://xx.xx.xx.xx:8888)を入力し、Jupyterへの接続を行う。

接続時、パスワードを聞かれるので、序盤のパスワードを入力。

すると、Jupyterが使えるようになっているはずだ。