JupyterNotebook をリモートサーバー上で公開して、どこでも研究開発。

講義で Jupyterhub を利用するお話です。 画像は下記の記事で知ったtqdmというパッケージを使いたくなったので載せてみた。

  IPython データサイエンスクックブック ―対話型コンピューティングと可視化のためのレシピ集

IPython データサイエンスクックブックをキッカケに研究室でも JupyterNotebook の凄さを皆が知り、MATLAB の kernel を通して利用を始めたりしています。自分は Python2→MATLAB→MATLAB & Python3 という流れで移り変わっています。

JupyterNotebook をリモートサーバー上で公開

コードは以下の通りです。特に問題なく公開することができました。

環境

  • CentOS 7 系

下記の記事を参考にセットアップする。

今回は pyenv を使って Python3.5.1 でホストしています。

昨日この記事を読んで、Anaconda がオススメされているので今度セットアップするときに使ってみよう。

こまかい設定等は以下の記事で説明されています。IPython Notebook を対象にした記事ですが、ほとんど一緒なので問題ありません。(config.py 自体がコメントで丁寧に各設定が記述されています

参考記事

Juptyerhub : 講義で Jupyter を利用する。

JupyterNotebook を講義でも活用できるようにならないかなと先生と探していたのですが、Jupyternotebook を公開するだけだとユーザー管理が不可能です。例えば ~tarou/というディレクトリで jupyternotebook を公開すると~tarou/に notebook が沢山できだれがどのノートを作ったのかが把握できないという問題点があります

その問題点を解消するのがJupyterHubです。

Jupyterhub は標準のユーザー認証でPAMを利用しているので、Cent OS のユーザー名とパスワードでログインすることができます。

2016/01/29 現時点で、PAM の認証方式だと上手く認証されるときとされないときが存在しています。

PAM 以外の認証方法としてはAuthで記述されているが以下の

  • GitHub/BitBucket/MediaWiki/CILogon OAuth
  • Google OAuth
  • Local+Google OAuth (from within a Docker container)
  • LDAP Authenticator

が用意されている。大学で LADP サーバーが公開されているならそれと連携するのが一番だが、Github などを認証に使うのも良いんじゃないかと。

[余談]Jupyterhub の記事を探していて見つけたこの記事が面白い。UC バークレーの Ph.D の学生が教育用にどう Jupyterhub を活用しているか。そして運用の段階でどのような問題がでてきたかが書かれている。海外の大学は進んでいるな~

参考記事