##初めに
AWSのインスタンスを起動するたびにコマンドからJupyter Notebookを起動させるのが面倒だったので、自動起動させるように設定したかった
##前提
- AWS Deep Learning AMIを利用してインスタンスを作成してあること
- OSがUbuntuであること
- こちらの設定が終わっていること
概要
- systemdのサービスにパスを渡すファイルを作成する
- systemdにサービスを登録する
以上!
手順
###1. systemdのサービスにパスを渡すファイルを作成する
こちらが参考になりました。
echo $PATH
で表示されたパスを全てコピーする
sudo vi /etc/sysconfig/ubuntu
ここに表示されたパスを記載する
###2. ユニット定義ファイル作成
細かい設定はよく分かりません
sudo vim /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. 補足
この接続ではプライバシーが保護されません
と出るのですが、それを回避したい場合はこちらが参考になると思います。