はじめに
主に下記を参考にさせていただきました
ubuntu 16.04が使いたかったので、その部分が違います
Proxyが厳しい企業内からも利用できるJupyter NotebookをAWS上に用意する
https://qiita.com/shunyas/items/3fa1a0f9e3287b6fb5bf
AWSのGPUインスタンスでJupyter Notebookを実行する(Windows 2018/07版)
https://qiita.com/nicco_mirai/items/1da092912adbce71b82b
一通りやるのに1~2時間ぐらいかかると思われます
手順
前提
利用環境
- ブラウザの80と443しかポートがあいてない環境
- AWSのアカウントがある
- AWSにブラウザで接続できる
構築環境
- ブラウザのポート自由
- AWSのアカウントがある
- AWSにブラウザで接続できる
- AWSにSSHで接続できる
1 利用環境でEC2の準備をする
AWSに繋がる確認も含めて利用環境からサインインしてバージニア北部に移動します
EC2ダッシュボードから、インスタンスの作成をします
「Ubuntu」で検索すると下記が表示されるので、これを選択してください
Ubuntu Server 16.04 LTS (HVM), SSD Volume Type
インスタンスタイプは p2.2xlarge を選択してください
Volume Storage は20Gにしてください
2 構築環境でjupyter notebookのインストール
- 2-1 SSHで作成したEC2インスタンスに接続する
puttyで接続する場合は、インスタンス作成時に保存したキーペアの.pemファイルを.ppkファイルに変換します
参考
pem ⇒ ppk 変換
https://qiita.com/naka46/items/3297242f3386b5f9e3dc
AWSにログインして作成したEC2のインスタンスの「パブリック DNS (IPv4)」を調べputtyのHostに入力します
puttyのconnection -> SSH -> Auth にあるPrivate key file for authenticationに変換したppkファイルを指定します
puttyのconnection -> Data にあるAuto-login username に ubuntu と入力します
これでOpenを押して接続します
下記を参考にしました
AWSのGPUインスタンスでJupyter Notebookを実行する(Windows 2018/07版)
https://qiita.com/nicco_mirai/items/1da092912adbce71b82b#%E4%BB%BB%E6%84%8F%E3%81%AEssh%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%AB%E5%85%A5%E3%82%8B
- 2-2 下記を参考にしてjupyter notebookをインストールします
英語ですが、コマンド部分を上から順にコピペすればできます
コマンド部分は$の行です
tensorFlowの動作確認の部分は飛ばしたほうがいいと思います
Setup TensorFlow GPU with AWS EC2 on Ubuntu 16.04 in 10 minutes.
https://medium.com/@dichen_5479/setup-tensorflow-gpu-with-aws-ec2-on-ubuntu-16-04-in-10-minutes-7ee64e47a66a
10minitesとかいてますが、私は30分はかかりました
p2.xlargeですと、0.5ドルぐらいですね
3 構築環境でjupyter notebookの確認
- 3-1 セキュリティグループの設定
作成したEC2インスタンスのセキュリティグループの「インバウンド」を開いて編集を押す
「カスタム TCP ルール」
「ポート範囲」を8888
ソースを「任意の場所」
にして保存する
ルールの追加で
「HTTPS」
ソースを「任意の場所」
を選択して保存する
- 3-2 画面の確認
「2 構築環境でjupyter notebookのインストール」を最後まで実行すると、下記のような文字列が表示されます
http://localhost:8888/?token=abcdefg12345jkfatecateta
localhostを、「パブリック DNS (IPv4)」に変更してブラウザで開くと、jupyter notebookが表示されています
4 構築環境で自動起動の設定
ここからは下記を参考にします
Proxyが厳しい企業内からも利用できるJupyter NotebookをAWS上に用意する
https://qiita.com/shunyas/items/3fa1a0f9e3287b6fb5bf
「Port 8888 を Proxyが通過できる443へフォワードする」以降を実施します
上記ではエディタをnano で編集していますが、操作がわからないのでviで実施しました
「起動スクリプト」はパスがかわります
source /home/ubuntu/src/anaconda3/bin/activate root
↓
source /home/ubuntu/miniconda3/bin/activate root
「GPU用の環境変数の設定」に関しては
AWSのGPUインスタンスでJupyter Notebookを実行する(Windows 2018/07版)
https://qiita.com/nicco_mirai/items/1da092912adbce71b82b#ssl%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E4%BD%9C%E3%82%8B
「SSL証明書を作る」
「パスワードのハッシュを作る」
「Jupyter Notebook(Lab)の構成ファイルを作る」
の3つを実施してからになります
c.NotebookApp.certfile と c.NotebookApp.keyfile のパスはsslかcertかどちらかにそろえてください
パスワードはsha1からの文字列になります
あと下記にしないとエラーになりました
c.NotebookApp.ip = '*'
↓
c.NotebookApp.ip = '0.0.0.0'
minicondaをインストールしているので、
5 利用環境で確認
AWSにサインインして、EC2を再起動
https://パブリック DNS (IPv4)
に「この接続ではプライバシーが保護されません」、「このサイトの閲覧を続行する (推奨されません)。 」を突破してアクセスして
jupyter notebook のログイン画面が表示されたら完了です
ログインのパスワードは「パスワードのハッシュを作る」で入力した文字列です
おわりに
プロキシには負けたくない