AWS に Anaconda + Python3 + jupyter notebook + keras/tensorflow環境導入

概要

そもそもjupyter をAWSに入れればいいんじゃねと思った時の備忘録です。

環境は以下

MyPC

 ・macOS High Sierra 10.13.4
 ・VirtualBox 5.2.1
 ・Vagrant 2.0.4

AWS

 ・CentOS7
 ・Anaconda3-5.2.0
 ・Python3.6.5(Anaconda経由でインストール)

機械学習ライブラリ

 ・tensorflow-1.8.0
 ・keras 2.2.0

AWSアカウントとEC2インスタンスの作成

もともとAWSアカウントは持っていたので割愛。

AWS EC2でWebサーバーを構築してみる - Qiita

こちらとか参考になります。 注意点としてjupyter notebookを立ち上げる際に、ポート8888を解放して繋げるので、セキュリティグループのルールを新しく作成する必要があります。 こんな感じ f:id:mashi-prog:20180611234809p:plain

SSHの設定

自分のPCからAWSインスタンスに簡単にアクセスするために、SSHの設定を行います。

MyPC上で設定

Host deep-dev(エイリアスの作成、任意のホスト名)
hostname ec2------.us-west-2.compute.amazonaws.com(EC2)
identityfile ~/.ssh/----.pem (AWSで発行した鍵)
user cents(ログインユーザー)
# SSH接続
ssh deep-dev

これを~/.ssh/configに記述することで、SSH接続が簡単にできるようになります。

ソフトウェアインストール

sshインスタンスに繋がったらいよいよ各種パッケージのインストールです。

AWSインスタンスで設定

# yumのアップデート
sudo yum update
# 色々インストール
sudo yum -y install git vim gcc gcc-c++ python-setuptools python-devel postgresql-devel

Anacondaのインストール

# anacondaのバージョン確認
pyenv install -l | grep anaconda
# 最新版インストール
pyenv install anaconda3-5.2.0
pyenv rehash
# anacondaをpythonのデフォルトに設定
pyenv global anaconda3-5.2.0
echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.2.0/bin/:$PATH"' >> ~/.bashrc
source ~/.bashrc
# condaの更新(これしないとたまにダメ)
conda update setuptools

jupuyter notebookの設定

jupyter notebook --generate-config
ipython
In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: ○○○○
Verify password: ○○○○

Out[2]: 'sha1:○○○○○○○○○○'

出力された'sha1:○○○○'を

vim ~/.jupyter/jupyter_notebook_config.py
...
c.NotebookApp.ip = '*'
...
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
# パスワードをコピー
c.NotebookApp.password = 'sha1:○○○○'

これでパスワードログインが可能になります。

# jupyter notebookサーバを起動する。  
# nohupとつけるとターミナルを閉じてもコマンドを実行してくれる。
nohup jupyter notebook $

最後にローカル側のブラウザからEC2ダッシュボードのパブリックDNSの名前:ポート番号(8888)でアクセス f:id:mashi-prog:20180612000623p:plain パスワードログイン! これで完了!

参考

qiita.com