Pythonで分析開発環境をつくる (AWS RDS + iPython + Anaconda)
アクセスログとは別にデータベースに直接アクセスして分析したいみたいなことって結構あると思うんですよね。
でもわざわざsshでログインして、そのサーバーに分析環境作ってみたいのって面倒な上になんかぶっ飛ばしちゃいそうで怖いじゃないですか。
なので今回は、Pythonでフレッシュな状態の RDSにアクセスしてiPython+Anacondaでパワフルに分析できるように環境を整えようと思います。
- Anacondaのインストール
- iPythonの初期設定
- RDSの設定と接続テスト
1. Anacondaのインストール
Anacondaはnumpyとかipythonとか分析に必要なライブラリが一括で入っているパッケージです。
Pyの分析環境構築は日本語ドキュメント少ないし、こけまくるので素直にAnaconda使ったほうがいいと思います。
インストールコマンド
#まずはpyenvのインストール $brew install pyenv $export PATH="$HOME/.pyenv/shims:$PATH"
#pyenvでAnacondaのインストール $pyenv install anaconda3-2.1.0 $pyenv rehash $pyenv global anaconda3-2.1.0 $conda update conda
#MySQL環境を想定しているので、pymysqlをインストール : $pip install PyMySQL #utf8mb4を使っていない場合はpip install pymysql3でもOK.
起動確認
ここまででインストール作業は終わりです。ipythonが起動するか試してみます。
$mkdir analysis $cd analysis $ipython notebook --pylab inline #グラフをnotebookないで表示するために pylab inlineする
localhost:8888でipythonのサイトが開かれると重います。ロケールエラーが出るかもしれません
ValueError: unknown locale: UTF-8
そのときは、.bashrcに以下を追加してsource .bashrcしてください。
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
2. iPythonの初期設定
毎回importするライブラリは決まっているので、起動したら常にimportされるようにしておきましょう。
$vi ~/.ipython/profile_default/startup/00-initial.py
で新規ファイルを作成して
import pandas as pd from pandas.io import sql import numpy as np import pylab as pl import pymysql
とすればデフォルトで上記のライブラリが読み込まれるようになります。
3. RDSの設定と接続テスト
RDSでの設定
まずはRDSでリードオンリーユーザーを作りましょう。参考
その後、AWSコンソール上で、「Public AccessibleをYESに」「セキュリティグループでローカルからDBポートへのアクセスを許可する」を行います。
接続テスト
ipythonから接続テストをします。
$con = pymysql.connect( host='AWSのエンドポイント', port=3306, user='リードオンリーユーザー名', passwd='*****************', db='yourdb' , charset='utf8mb4') $df = sql.read_sql('''SELECT * FROM USER limit 1''', con) $df
として結果が帰ってくればOKです!
オラッ!オラオラッ!!