Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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は重いから嫌だってひとにはおすすめ。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away