python

Jupyter notebook を Web サーバー (Apache) で公開する

Python, Julia などのインタラクティブ開発環境である Jupyter (旧 IPython)  notebook を Web サーバー (Apache) 上で公開し、どこからでも Web ブラウザでアクセスできるようにする。

Jupyter notebook とは

Python のインタラクティブ実行環境である IPython を Web ブラウザ上で実行するためのツールであった IPython notebook が他言語に対応し、 Jupyter notebook となった。

インタラクティブに実行結果が表示されるため、画像処理やデータ処理に強い。

jupyter

必要環境

インストール

データ処理や科学演算をやるのであれば、Numpy や Scipy も入った Anaconda パッケージでのインストールが便利。
以下のサイトを参照。
Python数値計算環境Anacondaの導入

設定

Jupyter notebook の設定ファイルである  jupyter_notebook_config.py を編集する。
デフォルトでは ~/.jupyter 以下にあるはず。
設定ファイルがない場合は、 

を実行することで生成される。

パスワードの設定

Jupyter notebook 上からはコンソール画面にもアクセスできるため、外部から内供情報を書き換えられてしまう可能性がある。
そこで、ログインの際に要求されるパスワードを設定する。

で IPython に入り、以下のコマンドを実行して任意のパスワードを入力する。

その後出力される ‘sha1: ‘ 以下のランダムな文字列が sha 鍵となるので、コピーしておく。

すでにパスワードを設定済みの場合は、

を実行することで sha 鍵を再確認できる。

~/.jupyter/jupyter_notebook_cofig.py 内から  c.NotebookApp.password という記述を探し、先ほどコピーした sha 鍵をペーストする。

SSL 接続の設定

HTTPS 接続で Jupyter notebook にアクセスできるようにする。

~/.jupyter/jupyter_notebook_cofig.py 内の以下の部分を変更する。

Web サーバー間の通信暗号化の際に生成した証明書、鍵ファイルを絶対パスで指定すれば良い。

Jupyter notebook 起動設定

~/.jupyter/jupyter_notebook_cofig.py 内で

とすることで、ブラウザを立ち上げることなく、 Jupyter notebook を起動できる。

Cent OS の場合、 /etc/rc.d/rc.local

と記述することで、サーバー起動時に自動で Jupyter notebook をバックグラウンドで実行できる。

その他 セキュリティ設定

以下の設定は必須ではないが、変更することでよりセキュリティを高めることができる。

接続

Web ブラウザから https://サーバーのアドレス:8888 にアクセスすればパスワードの入力画面が表示され、 Jupyter notebook に接続できる。

あとがき

Jupyter notebook から Terminal を開くとこができるため、そこから root 権限を得たり、内部ファイルを変更することができてしまう。
パスワード認証だけでは不安なので、IP 制限や Jupyter notebook を構築したユーザーの権限を制限するなどの対策が必要である。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です