【AWS】AWS Deep Learning AMIのJupyter Notebookを自動起動する方法


初めに

AWSのインスタンスを起動するたびにコマンドからJupyter Notebookを起動させるのが面倒だったので、自動起動させるように設定したかった

前提

  1. AWS Deep Learning AMIを利用してインスタンスを作成してあること
  2. OSがUbuntuであること
  3. こちらの設定が終わっていること

概要

  1. systemdのサービスにパスを渡すファイルを作成する
  2. systemdにサービスを登録する

以上!

手順

1. systemdのサービスにパスを渡すファイルを作成する

こちらが参考になりました。

echo $PATH

で表示されたパスを全てコピーする

sudo vi /etc/sysconfig/ubuntu

ここに表示されたパスを記載する

2. ユニット定義ファイル作成

細かい設定はよく分かりません

sudo vim /lib/systemd/system/hogehoge.service
/lib/systemd/system/hogehoge.service
[Unit]
Description=Jupyter Notebook

[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/ubuntu  # 1. で作成したファイル -> これがないと「conda: command not found」みたいに出てくる
ExecStart=/home/ubuntu/anaconda3/bin/jupyter-notebook --config=/home/ubuntu/.jupyter/jupyter_notebook_config.py --certfile=/home/ubuntu/ssl/mycert.pem --keyfile /home/ubuntu/ssl/mykey.key
# オプションの「config」「certfile」「keyfile」はAWSのリファレンス通りの場所なので、場所を変更している場合は書き換える必要がある
User=ubuntu
Group=ubuntu

[Install]
WantedBy=multi-user.target

3. サービスに登録

sudo systemctl enable hogehoge.service
sudo systemctl start hogehoge.service

上記でサービスに登録ができるので、念のためステータスを確認しておく

sudo systemctl status hogehoge.service

Active: active (running)

となっていれば正常に動作しており

Found new kernels in environments: conda_python3, conda_python2, conda_pytorch_p36, conda_pytorch_p27, ...

と表示されていればcondaコマンドが問題なくサービスに登録できている(手順1のようにファイルを作成しないと、ここでエラーが表示される)

4. Jupyter Notebookにアクセス

ローカルホストのブラウザから

https://AWSインスタンスのipアドレス:8888

にアクセスして画面が表示されれば後は通常通り使用することができる

5. 補足

この接続ではプライバシーが保護されません

と出るのですが、それを回避したい場合はこちらが参考になると思います。