【AWS】初期導入のハマりポイント覚書(導入からJupterNotebookでリモート作業まで)
GWなのでAWSを使ってみたいと思ったので、
先輩と導入からJupterNotebookでのリモート作業までやってみました
今回はハマったところを覚書
作業の主な流れ
①アカウント登録
②EC2インスタンス作成
③クライアントからEC2インスタンスに接続
④python環境構築(anaconda3インストール)
⑤JupterNotebookリモート操作環境構築
基本的な作業手順は後述のリンクで確認が吉
①アカウント登録
特になし
流れに身を任せて「まずは無料ではじめる」をクリックして作業していきます
登録にはクレジットカードが必要なのでお忘れなく
③クライアントからEC2インスタンスに接続
接続先 : IPv4 パブリック IP (インスタンス画面の下部に記載 ※起動毎に変わるので注意)
EC2のデフォルトユーザ名 : ec2-user
EC2のデフォルトパスワード : (なし)
②のインスタンス生成時に生成したprivate keyを指定(xxx.pem)
④python環境構築(anaconda3インストール)
AMIはどうやらpython2系が標準装備なので普段使っている3系に合わせたいと思います
日頃はanacondaを使用するのでそれを入れます
$ sudo yum -y install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel
pyenvをインストール
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
編集
$ emacs ~/.bashrc
次を書き込み
export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" fi
適用
$ source ~/.bashrc
anaconda インストール
$ pyenv install anaconda 3-2.3.0
pyenvでpythonがデフォルトで指しているsystemからanaconda 3-2.3.0へ変更
$ pyenv global anaconda 3-2.3.0 $ pyenv global system
変更されてないだと。。。
pyenvで環境が切り替えらえない場合
いろいろ調べましたが、結論が見つからず結局再起動で解決でした。。。
$ sudo reboot $ pyenv global anaconda 3-2.3.0 $ pyenv global anaconda 3-2.3.0
⑤JupterNotebookリモート操作環境構築
実用編です
先輩からの提案でJupyterNotebookリモート環境を構築してみました
つまり、
「手元のクライアントPCからAWS上のEC2インスタンスで機械学習とかできてみんなハッピー!」
というストーリーです
参考資料はこちら
apt-get環境ありが基本になっているので、AMIでの構築手順を記載します
qiita.com
1.jupyterインストール
まず早速ですがjupyterが入らないです。。。
pip install jupyter
→ setuptoolsでerror
jupyterが入らない場合
これはcondaの更新が必要でした
conda update setuptools pip install jupyter
無事インストール
2.notebookをインストール
git clone https://github.com/jupyter/notebook.git cd notebook pip install --pre -e . jupyter notebook
3.ipython設定
ipythonはanacondaのサブセットとして入っているので改めて入れなくてOK
SHA1キーを取得するため次を実行
$ ipython
from notebook.auth import passwd passwd()
ここで2回Enterすると、SHA1キー(xxxxxxxxxxxxx)が得られます。(メモ)
コンソールから次を一旦実行
$ jupyter notebook
.jupyterフォルダが生成されいます。
設定ファイルを記載
~/.jupyter/jupyter_notebook_config.py
c = get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8080 c.NotebookApp.password = u'sha1:xxxxxxxxxxxxx'
jupyter notebookサーバー起動
$ jupyter notebook &
無事起動ですね!
ここからクライアントPCでの作業
クライアントPCのブラウザから次を実行
http://<パブリック IP>:8080
無事、、、はいれません!