AGENDA
0.はじめに
1.インストール
2.SG追加と動作確認
3.使い方
0.はじめに
(1)前置き
・本コンテンツは “[Cloud102]#1 Pythonを始めよう”の第2部 Jupyter Notebook構築AWS編です。
第1部はこちら: http://qiita.com/nagahisa/items/f378ff23d93119cb3c60
・本当はJupyter Notebookはもっと後半で説明するつもりでしたが、GCP研修(CPB100)などで Jupyter Notebookを使うらしいので、思いっきり前倒して説明します。
・ただ、CPB100で扱うようなSparkやTensorFlowには一切触れず、便利なPython勉強環境としてJupyter Notebookが扱えるようになる事を目指します。
(2)元情報
QIITAにUbuntuにJupyter入れるコンテンツがあるので、これをAmazon Linux版に変更して利用します。
Jupyter事始め
http://qiita.com/taka4sato/items/2c3397ff34c440044978
(3)注意事項
– 今回使用するPythonはAmazon Linuxに “python”として導入されている ver.2.7系です。
– Pythonにはver.3系もあり、今後の主力はこちらになります。
– ver.3系では大きな仕様変更が幾つか入っており、ver.2系で開発したコードと互換性が一部ないところがあります。
– 自分のMac・Windowsに環境構築される場合は、Pythonの両方のバージョンを導入して必要に応じて切り替えることをお勧めします( pyenv, virtualenv )。
1. インストール
(1)Amazon Linuxインスタンス起動&SSHログイン
・前回(*)の環境準備で作成しておいたAmazon Linuxを起動します。
(*)http://qiita.com/nagahisa/items/c6bd92992eef42dbe53a
・起動したら、前回手順でログイン
Macでのコマンド例:
$ssh -i ~/.ssh/cloud102.pem ec2-user@52.198.159.203
(2) Updateと必要なコンポーネントをインストール
Amazon Linux上で以下を実行:
$ sudo yum update
$ sudo yum -y upgrade
$ sudo yum install -y python-pip libpq-dev python-dev
$ sudo pip install -U pip
$ sudo /usr/local/bin/pip install ipython[notebook]
$ sudo /usr/local/bin/pip install numpy pandas matplotlib seaborn scikit-learn
・まずはUpdate:
$ sudo yum update
$ sudo yum -y upgrade
(3) SG(Security Group)修正
・Jupyterサーバを起動するポート(今回は 8080/tcp)のアクセスを受け付けるようにSGを修正
・VPCダッシュボード > セキュリティグループから、前回作成したSGに 「8080/tcp許可」を追加
(4) まずはJupyter Login Passwordなしで起動・アクセス確認
・configファイルテンプレート作成
・configファイルの最後に以下を追加
c = get_config()
c.NotebookApp.ip = ‘*’
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
・動作確認できたらJupyterサーバを “Ctrl+C”で停止
(5) Jupyter Login Password設定して起動・アクセス確認
・~/.jupyter/jupyter_notebook_config.pyに表示されたFinger Printを以下のように追加
c.NotebookApp.password = u’表示されたsha1から始まる文字列’
3.使い方
(1)Notebook作成
・元情報(*)の後半を参照して Notebook作成。
(*)Jupyter事始め
http://qiita.com/taka4sato/items/2c3397ff34c440044978
(2)せっかくなのでちょっと統計処理に触れる
・以下をNotebookのセルにコピべして実行(Ctrl+Enter)
%mathplotlib inline
import numpy as np
import mathplotlib.pyplot as plt
x = np.random.randint(0,100,10000)
plt.hist(x.bins=20)
plt.plot()
Enjoy!