2
0

More than 5 years have passed since last update.

プロキシのある社内から利用できるjupyter notebook(GPU、EC2、ubuntu16.04、TensorFlow)の構築

Last updated at Posted at 2019-02-11

はじめに

主に下記を参考にさせていただきました
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 のログイン画面が表示されたら完了です
ログインのパスワードは「パスワードのハッシュを作る」で入力した文字列です

おわりに

プロキシには負けたくない

2
0
1

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
  3. You can use dark theme
What you can do with signing up
2
0