LoginSignup
8

More than 5 years have passed since last update.

posted at

updated at

Amazon lightsailでJupyterを起動させてみた

AWSから「lightsail」というVPSサービスが開始されたので、お試しとして使ってみた。
使ってみるついでにディープラーニングの学習環境として使いたかったので
Jupyterを入れて起動させてみた。その手順をここにまとめておく。

ちなみに学習するのはオライリーの「ゼロから作るDeep Learning」。
すごくわかりやすいのでおすすめ!
picture978-4-87311-758-4.gif
https://www.oreilly.co.jp/books/9784873117584/

前提

AWSアカウントをお持ちの方

lightsailの起動

lightsailのページへGo
chrome_2016-12-01_20-45-27.png

「Base OS」をクリック。
「Ubuntu」を選択して「Apps + OS」をクリック
chrome_2016-12-01_20-47-06.png

「Nginx」をリバースプロキシとして使いたいので「Nginx」を選択
chrome_2016-12-01_20-47-31.png

料金プランはもちろん一番安い「$5」!
chrome_2016-12-01_20-48-58.png

今回作成するインスタンスの名前を指定。
今回は「python-deeplarning-jupyter」で作成(実際作ったときはdepplarningとスペルミスしてる…)
名前が決まったら「Create」をクリック!
chrome_2016-12-01_20-49-58.png

インスタンスができた!作成したインスタンスのリンクをクリック。
chrome_2016-12-01_20-51-07_Ink_LI.jpg

インスタンスの設定

ブラウザでJupyterを見たいわけなので、そのための設定をしていく。

Elastic IPの付与

毎回IPが変わるとブラウザアクセスの際、めんどくさいのでElastic IP(固定IP)をインスタンスに付与する。

下記画面のNetworkingをクリック。
chrome_2016-12-01_20-52-09_Ink_LI.jpg

Public IPのところの「Create Static IP」をクリック
chrome_2016-12-01_21-09-23.png

Static IPの名前をつけてとのことなので、適当に名前を付けて「Create」をクリック!
chrome_2016-12-03_20-08-35.png

これで固定IPがもらえた!

Nginxの設定

さぁ、次はサーバーに入ってNginxの設定だ!

サーバーへログインするためにSSHしたいが、めんどくさいのでWebコンソールからログインしよう。
下記画面の「Connect using SSH」をクリック。
chrome_2016-12-01_20-52-09.png

ここからはコンソールでの作業。
Nginxの設定ファイルを下記のように書き換える。

sudo vim /opt/bitnami/nginx/conf/bitnami/bitnami.conf
===
upstream jupyter {
    server localhost:8888;
}

server {
    listen      80;
    server_name localhost;

    allow xxx.xxx.xxx.xxx;
    deny all;

    location / {
        proxy_pass http://jupyter;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Origin "";
    }
}
===

JupyterをNginx経由で閲覧するための設定。
他人には当然見られたくないので

allow xxx.xxx.xxx.xxx;

のところで、自分のPCのグローバルIPアドレスを指定する。

locationのところの設定は、JupyterはWebSocketを使用するため、WebSocketの設定をする。

ここまで出来たらNginxの再起動。エラーが出なきゃおk

sudo /opt/bitnami/ctlscript.sh restart nginx

ここまで出来たらブラウザで、Elastic IP(固定IP)にアクセスしてみる。

http://xxx.xxx.xxx.xxx

下記画面が表示された成功!
chrome_2016-12-01_20-57-32.png

Jupyterの設定

まずはJupyterをインストールする前に、pipのインストールを行う。
オライリーのディープラーニングの本はPython3が前提なのでPython3用を使う。

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python3

次にJupyterのインストール。

pip3 install jupyter

Jupyter内で生成されるファイルの保存先を作成。
どこでもよい。

mkdir ~/jupyter

Jupyterの設定ファイルを生成。
そして設定ファイルの編集。

jupyter notebook --generate-config

vim ~/.jupyter/jupyter_notebook_config.py
===
# 179行目 Jupyterのファイル保存先ディレクトリの指定。上記で作成したディレクトリ。
c.NotebookApp.notebook_dir = '/home/bitnami/jupyter'
# 185行目 Jupyterを起動するとブラウザが起動して邪魔なのでOFF
c.NotebookApp.open_browser = False
===

ここまで来たらJupyterを起動しよう。

jupyter notebook

さっきNginxの動作確認の時に見たページにブラウザでアクセス

http://xxx.xxx.xxx.xxx

下記画面が出たら完了!
chrome_2016-12-03_20-07-16.png

最後に

ということで、lightsailでJupterを起動させることができた。
ほかのAWSのサービスは従量課金だが、このlightsailは定額なので初心者でも安心。
VMは重いから嫌だってひとにはおすすめ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8