目次
- 目次
- はじめに
- Heroku上でJupyterサーバを立てる方法
- Heroku Postgresの無料枠をノートブックのストレージにする
- このシステムの問題点
- 参考資料
- MyEnigma Supporters
はじめに
先日、Jupyter Notebookが
非常に便利という記事を書きました。
多くの人はJupyter Notebookを
ローカル環境で実行していると思います。
また、前述の記事で説明したように、
複数の環境でNotebookを共有したい場合は、
Dropboxなどでファイルを同期する方法もあります。
しかし、Pythonがインストールできない環境や、
ちょっとMarkdownのメモや
Pythonで計算したい時などは、
どこかのサーバ上のJupyterにブラウザでアクセスして
使いたくなります。
今回、PasSの一つである
Herokuの無料枠を使って、
Jupyterサーバを作ってみたので、
その方法を紹介したいと思います。
Heroku上でJupyterサーバを立てる方法
今回紹介する方法では、
下記のコードを利用します。
まず初めに上記のリポジトリをフォークし、
READMEにあるdeploy to herokuボタンを押します。
(deploy to herokuボタンに関しては下記参照
)
あとは、Herokuのページに移動するので、
ログインして、Webサーバの設定をすれば、
簡単に無料dynoで、
Jupyterサーバを立ち上げることができます。
ちなみにREADMEにも書かれていますが、
Jupyterサーバを立ち上げるためには、
Herokuの環境変数に
JUPYTER_NOTEBOOK_PASSWORD
という値を設定する必要があります。
これはJupyterサーバにアクセスするための
パスワードになります。
Herokuの環境変数の設定方法は下記の記事を参照下さい。
このソフトの素晴らしい所は、
下記の記事で非常に便利だとおすすめした
nbextensionがデフォルトでインストールされることです。
これを使うことで画像ファイルの
ドラッグアンドドロップも簡単にできるようになります。
HerokuのWebアプリのURLを知られてしまうと、
個人用のJupyterサーバにアクセスされてしまうので、
パスワード認証に対応しているのもいいですね。
(ただ通常のパスワード認証では簡単に解除されてしまうこともあるので、
URLはあまりオープンにしないほうがいいと思います)
Heroku Postgresの無料枠をノートブックのストレージにする
heroku-jupyterのREADMEに書かれている通り、
PostgresのRDBがある場合、
ノートブックなどのデータを
そのデータベースに格納することができます。
Herokuのデプロイサーバのデータは、
dynoがスリープすると消えてしまうことがあるので、
データはDBに格納するようにした方が良いと思います。
自分の場合、Herokuのアドオンである
Heroku Postgresを使って、
Jupyterのデータストレージにしてみました。
アドオンの設定は、
Herokuのコマンドラインツールや、
HerokuのWeb管理画面から追加することができます。
あとはHerokuの環境変数として、
DATABASE_URL
という名前の環境変数に、DBのURLを追加すればOKです。
このシステムの問題点
上記の手法で、
簡単にJupyterサーバを立ち上げることが出来ましたが、
いくつか改善したい所もあります。
1. DBからノートブックを抽出したり、ディレクトリを移動させる方法がわからない。
PostgresのDBの中に、
ノートブックファイルが保存されているみたいですが、
そのデータをダウンロードしたり、
データを別のディレクトリに移動させる方法がまだわかりません。。。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。