JupyterHubは、マルチユーザーで、シングルユーザーJupyter notebook サーバーの複数インスタンスを生成、管理、およびプロキシします。AWS EC2環境で Pyenv + Anacondaを使用して環境を構築した時のメモです。

AWS EC2環境構築

  • AWSコンソールにログインし、EC2 Dashboardを選択。[Launch Instance] をクリックします。

  • Amazon Linux AMI 2017.03.1 (HVM), SSD Volume Type を選択、[Select]クリック

  • t2.micro (Free tier eligible) を選択, [Next: Configure Instance Details]クリック

  • [Next: Add Storage]クリック

  • [Next: Add Tags]クリック

  • [Next: Configure Security Group]クリック

  • Create a new security group を選択, [Security group name:] を適当な名前に変更。Add Ruleから SSH, Custom TCP Rule:Port 8000を追加。[Review and Launch]クリック

  •  [Launch]クリック。Create a new key pairを選択し, [Key pair name] に適当な名前を入れる。[Download Key Pair]をクリックすると pemファイルがダウンロードされるので、ファイル名及びパーミッション(600)を変更する。[Launch Instances]クリック

  • [View Instances]クリック

  • “Status Check”が “2/2 checks passed”になるまで数分待つ。ステータスが変わったら AWS EC2 の構築は完了です。右下の “Public DNS (IPv4)”は、SSH loginで必要になるのでメモしておく。

Pyenv setup

  • ssh -i JUPYTERHUB-key-pair.pem ec2-user@[Public DNS(IPv4)]

Anaconda install

JupyterHub install

JupyterHub setup

Startup setup

JupyterHub user setup

Loginして動作確認

  • http://[Public DNS(IPv4)]:8000

  • notebook画面

セットアップが完了していれば、上記の画面が表示されます。テストユーザは後で削除してください。また、ec2-userの代わりに管理用のユーザを作成して、ec2-userを削除するのが良いでしょう。証明書やドメインの設定は適宜行ってください🙇