jupyter, AnacondaをGoogle Cloud Platfrom上で動かす

jupyterをGoogle Cloud Platfrom上で動かして、ローカルのブラウザからアクセスしたい。
以下その手順

1.Google Cloud Platfromでインスタンス作成
f:id:Tug-uca:20170524163101p:plain
環境構築時は小さい構成でよい。
今回はcentOSを利用している。
できたらSSHでアクセスする。


2.Anacondaインストー
2-1. wget,bzip2のインストー

su yum install wget
su yum install bzip2

2-2. Anacondaのダウンロードとインストー
(最新のバージョンはhttps://www.continuum.io/downloadsで確認)

mkdir downloads
cd downloads
wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
bash Anaconda3-4.3.1-Linux-x86_64.sh

途中出てくる質問はすべてyesにする。

3.jupyterの設定
3-1. コンフィギュレーションファイルを作成

cd
jupyter notebook --generate-config
cd .jupyter

3-2. SSL用の鍵を作成

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem


3-3. パスワードからハッシュ値の生成
pythonで以下を実行、得られたハッシュ値は控えておく。

from notebook.auth import passwd; passwd()

3-4. コンフィギュレーションファイルを編集

# OpenSSLで作ったファイルへのパス
c.NotebookApp.certfile = u'/home/username/.jupyter/mycert.pem'
c.NotebookApp.keyfile  = u'/home/username/.jupyter/mykey.key'
# どのIPアドレスからのアクセスも受け入れる
c.NotebookApp.ip = '*'
# passwd()コマンドで作ったパスワードのハッシュを貼る
c.NotebookApp.password = u'sha1:bcd259ccf...'
# 勝手にブラウザを起動しない
c.NotebookApp.open_browser = False
# 外部からアクセスするためのポート番号を指定する
c.NotebookApp.port = 8888

3-5. 作業フォルダの作成とjupyterの起動

cd 
mkdir jupyter_workdir
cd jupyter_workdir
jupyter notebook


4.vmのネットワーク設定
VMインスタンスの編集を開く。

f:id:Tug-uca:20170524174851p:plain
4-1. ファイアウォールHTTPS トラフィックを許可するにチェックを入れる
4-2. 外部IPで新しい静的IPを追加する(IP追加にコスト発生の場合あり)
4-3. ネットワークのdefaultをクリックし、ファイアウォール ルールを追加
 名前:任意
 ソースタグ: 0.0.0.0/0 どのようなホストからでも接続を許す
 許可対象のプロトコルまたはポート : tcp:8888
f:id:Tug-uca:20170524171854p:plain

変更出来たら設定を保存する


確認
https://「外部IP」:8888/ にアクセスし、先ほど作成したパスワードを入力する。
f:id:Tug-uca:20170524172855p:plain
実行できた。
f:id:Tug-uca:20170524173018p:plain


参考
Set up Anaconda + IPython + Tensorflow + Julia on a Google Compute Engine VM – Harold Soh
Google Cloud Platform で Jupyter のサービスを動かす » DSP空挺団