EC2+DockerでJupyter Notebookを動かす part2

前回はEC2インスタンスを作成し、Dockerをインストールしました。
今回はJupyter NotebookをDocker上で動かし、
EC2インスタンスのネットワーク設定をいじることで
外部からJupyter Notebookへアクセスできるようにします。

Jupyter NotebookのDockerイメージ取得・起動

まずはJupyter NotebookのDockerイメージを取得します。

docker pull jupyter/datascience-notebook

Jupyter Notebookのイメージ取得ができたことを確認します。

docker images jupyter/datascience-notebook

REPOSITORY                     TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
jupyter/datascience-notebook   latest              91f5bc10a994        36 hours ago        6.828 GB

イメージの取得ができたら、あとはDockerイメージを起動します。

docker run -it --name notebook -p 80:8888 jupyter/datascience-notebook

上記コマンドを実行するとJupyter Notebookにアクセスするための
トークンが標準出力されますので、それを使ってアクセスします。
その後は”Ctrl-p -> Ctrl-q”でイメージ内からログアウトし、
ターミナル等を閉じても稼働し続けるようにします。

EC2インスタンスのNW設定

次にEC2インスタンスのネットワーク設定を下記の手順で行います。

  1. サイドメニューの「セキュリティグループ」を押下
  2. Jupyter Notebookが稼働しているEC2インスタンスの
    セキュリティグループを選択
  3. 下ウィンドウの「インバウンド」タブを選択
  4. 編集ボタンを押下
  5. 「インバウンドルールの編集」画面で「ルールの追加」を押下
  6. 以下の入力内容でルールを追加
    • タイプ|HTTP
    • プロトコル|TCP
    • ポート範囲|80
    • 送信元|カスタム、0.0.0.0/0
  7. 「保存」ボタンを押下

security group

add rule

以上の設定をすると、EC2インスタンスのグローバルIPを指定すれば
任意のIPからJupyter Notebookにアクセスできます。

Jupyter Notebook Toppage

これで家からはもちろん、出先や会社からでも
手軽にデータ分析ができますね!

EC2+DockerでJupyter Notebookを動かす

はじめに

先週は更新が滞ってしまいましたが、今週は頑張ります。
以前の記事でJupyter Notebookの導入と使用感について触れました。

今回はAWS上のEC2インスタンスにDockerをインストールし、
Dockerイメージを使ってJupyter Notebookをたてようと思います。
またEC2のNW設定をいじり、
どこからでもJupyter Notebookにアクセスできるようにします。

EC2インスタンスの作成

AWSを触ったことのある方ならよくご存知とは思いますが、
一応EC2インスタンス作成から辿っていきます。

AWSにログインし、ダッシュボードからEC2を選択します。

select ec2

インスタンス作成ボタンを押下します。


start inst creation

今回はAmazon Linuxをマシンイメージとして選択します。

select ami

あとはスペック等の設定をしていきますが、
今回は無料枠内での利用となるので
以下の設定意外はデフォルトで作成しました。

  • インスタンスタイプ|t2.micro
  • ストレージ|30GB

だいたい2、3分ほどでインスタンスができ、
SSH接続も可能となります。
サイドメニューのインスタンスをクリックすると、
作成したEC2インスタンスの一覧を確認できます。

view inst

EC2インスタンスへDockerをインストール

さて、EC2インスタンスができましたので、
Dockerをインストールしていきます。

インスタンス作成時に登録した公開鍵のペアとなる秘密鍵を用い、
“ec2-user”というユーザでインスタンスにSSH接続します。

まずはアップデートをかけます。

[root]# yum -y update

Dockerをインストールするために
EPELリポジトリを追加します。

[root]# wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root]# rpm -ivh epel-release-6-8.noarch.rpm

Dockerをインストールします。

[root]# yum -y --enablerepo=epel install docker-io

Dockerのサービスを起動します。

[root]# service docker start

以上でEC2インスタンスの作成とDockerのインストールが出来ました。
次回はJupyter NotebookのDockerイメージをEC2上で動かし、
EC2のNW設定をすることで
ブラウザからJupyter Notebookへアクセスできるようにします。