Google Compute EngineにJupyterをインストールしてブラウザからアクセスできるようにする
概要
前回構築したGCPのデータ分析環境にJupyter等を入れてブラウザでアクセス出来るようにし、分析を実行できる環境を構築する方法のメモです。
Anacondaのインストールと、ファイヤーウォールの設定のみで簡単に可能です。
Anacondaのインストール
まずはインストールする対象のインスタンスをSSHで接続します。
今回は画像の用にCompute Engie>VMインスタンスの画面から「SSH」をクリックしブラウザからアクセスします。
ダウンロード用のフォルダを作って、そこにanacondaのインストール用ファイルをダウンロードします。
mkdir downloads cd downloads wget http://repo.continuum.io/archive/Anaconda3-4.0.0-Linux-x86_64.sh bash Anaconda3-4.0.0-Linux-x86_64.sh
これらを実行するとLicenseの確認画面が出るので、ひたすらEnterを押します。
Do you approve the license terms? [yes|no]
と出てきたらyes
と打ち込んでEnterです。
次に、
Anaconda3 will now be installed into this location: /home/sonics_jr/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below
と表示されたら、特に変更の必要がなければEnterです。
Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/sonics_jr/.bashrc ? [yes|no]
これも問題なければyes
と打ち込みます。
最後にsource ~/.bashrc
でbashを読み込み直して終了です。
emacsのインストール
テキストエディタで設定ファイルを開いて編集 する必要があるのでインストールします。
ここではemacsを使いますので、インストールしていない場合は以下のコマンドを実行。
sudo apt-get install emacs
jupyterの設定
次にjupyterの設定を行います。 まずは設定ファイルの有無を確認。
ls ~/.jupyter/jupyter_notebook_config.py
以下が表示された場合は、
ls: cannot access '/home/sonics_jr/.jupyter/jupyter_notebook_config.py': No such file or directory
jupyter notebook --generate-config
で設定ファイルを作成しましょう。
Writing default config to: /home/sonics_jr/.jupyter/jupyter_notebook_config.py
と表示されたら成功です。
そしてSSL用の鍵を作ります。
cd .jupyter openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
適切な情報を入れてEnterを押していきます(Country NameにJPを入れてあとは空欄でEnterで行けました)。
次にpythonを起動して、python上でパスワードのハッシュを作ります。
以下コマンドを実行し、利用したいパスワードを二回入力し、結果をコピーして控えておきます。
from notebook.auth import passwd; passwd()
emacsで設定ファイルを開き、
emacs .jupyter/jupyter_notebook_config.py
以下を書き込みます。
#------------------------------------------------------------------------------ # Configurable configuration #------------------------------------------------------------------------------ c = get_config() c.NotebookApp.certfile = u'/home/<username>/.jupyter/mycert.pem' c.NotebookApp.keyfile = u'/home/<username>/.jupyter/mykey.key' c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 c.NotebookApp.password = u'作成したハッシュ'
以上でjupyterの設定は完了です。
ファイヤーウォールの設定
次にファイヤーウォールの設定を行います。
そしてファイヤーウォールルールを作成をクリック。
以下のように入力します。
名前は任意で構いません。
ターゲットタグで指定したタグがついているネットワーク設定に適用されるので、この後でネットワークタグの設定を行います。
ソースIPの範囲は「0.0.0.0/0」を設定すると全てのIPを許可します。
ポートは、jupyterの設定ファイルに書き込んだものと同じものを設定します。
以上でファイヤーウォールルールの設定は終わりです。
インスタンス側のネットワークタグの設定
Compute>VMインスタンスをクリックし、ファイヤーウォールの設定を適用したいインスタンスをクリックし編集ボタンを押します。
ページ中部の「ネットワークタグ」の欄に「jupyter」と入力して完了です。
jupyterを起動してアクセス
再度SSH接続を行い、
jupyter notebook
と打ち込みjupyterを起動します。
ブラウザのURL欄にhttps://<ip>:8888
と入力すると、警告画面が出ますが、
個人利用のため無視してアクセスします。
以下の画面が出たら、先ほどハッシュ化したパスワードを入力してアクセスします。
まとめ
今回はデータ分析用仮想環境にjupyterをインストールして、ブラウザでアクセスする方法を説明しました。
難しくはないのですが手順は多く大変でした。
参考ページ
Running Jupyter Notebook on Google Cloud Platform in 15 min
Google Cloud Platform で Jupyter のサービスを動かす – DSP空挺団
Set up Anaconda + IPython + Tensorflow + Julia on a Google Compute Engine VM – Harold Soh
Jupyter + Tensorflow + Nvidia GPU + Docker + Google Compute Engine