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を解放して繋げるので、セキュリティグループのルールを新しく作成する必要があります。 こんな感じ
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)でアクセス パスワードログイン! これで完了!