Upload
-
View
2.682
Download
3
Embed Size (px)
DESCRIPTION
JAWSUG神戸第2回で発表したスライドです。
Citation preview
2013/7/6 JAWSUG-Kobe #2 OpsWorks (Chef) 特集
& fabric & boto & awscliで
AMIの自動作成 & AutoScale
玉川竜司
13年7月6日土曜日
軽く自己紹介
Sky株式会社でいろいろやってます。兼業翻訳やってます。tamagawa_ryuji@twitter / Ryuji Tamagawa@FB
13年7月6日土曜日
今日のお話
✤ コードをコミットしたら
✤ ビルドして
✤ AMIを作成して
✤ AutoScaleのLaunchConfig書き換えて
✤ インスタンスを入れ替えます
ここを完全に自動化します
13年7月6日土曜日
今回のシステム構成と動作
GitHub
ソースコード
ソースコード
ソースコード
fabric boto
awscli
AutomaticDeployer(t1.micro with IAM Role)
buildworkspace
LaunchConfig
①監視 ②取得してビルド
③インスタンスを作成してsshで中身を設定
④カスタムAMIを作成し、そのAMIを使う
LaunchConfigを作成
⑤インスタンスを入れ替え
Amazon LinuxAMI
13年7月6日土曜日
デモ
13年7月6日土曜日
それでは順番に説明します
13年7月6日土曜日
✤ ご存じ万能執事さん
✤ gitプラグインを入れれば、ちょっとした設定でGitHubのポーリングが可能
✤ GitHubのリポジトリが更新されていたら、中身をとってきてビルド実行
✤ 今回は、fabricを呼び出して処理を行っている
13年7月6日土曜日
今回使った道具
✤ fabric(http://docs.fabfile.org/en/1.6/)✤ PythonベースのSSH自動化ツールみたいなもの✤ Pythonっぽくて便利!
✤ boto(http://aws.amazon.com/jp/sdkforpython/)✤ 別名AWS SDK for Python✤ 中の人がAWSに入って公式化(AWS CLIの基盤にもなりました)
✤ AWSCLI(http://aws.amazon.com/jp/cli/)✤ jqと併せて使うと超便利
13年7月6日土曜日
fabricのいいところ
✤ fabfile.pyを書いていって、カスタムのコマンドを増やしていく感じ
✤ コマンドを個別に実行できるので、試しながらのスクリプティングが非常に楽ちん
✤ sshやscp、複数サーバーの扱いなど、低レベルのビルディングブロックが提供されている
✤ 要するに「スーパーssh」な感じなので、敷居が低い
13年7月6日土曜日
botoについて
✤ Pythonの人には楽ちん
✤ ドキュメントはちょっとわかりにくい
✤ 薄い本出てます(電子書籍 )
✤ IAM Rolesに対応しているところは高ポイント
13年7月6日土曜日
IAM Rolesについてちょっと説明
✤ IAM Roles以前はconn = EC2Connection('<aws access key>', '<aws secret key>')
✤ AWS内のインスタンスからAWSのAPIを呼ぶ際に、クレデンシャルの扱いが面倒だった
✤ IAM Roles以降は、ロールが割り当たっていればconn = EC2Connection()だけでOK。クレデンシャルをEC2インスタンスに持たせる必要がない
✤ ライブラリやツールが、http://169.254.169.254/latest/meta-dataあたりを見て、よろしくやってくれる
✤ botoやawscliはばっちり。Javaはまだ?
13年7月6日土曜日
awscliと.jq
✤ 軽量な公式コマンドラインツール。ただし、すべてのサービスがカバーされているわけでは(まだ)ない
✤ コマンドのレスポンスがJSONで返される
✤ JSONフィルタのjqを使えば、レスポンスの扱いが楽
13年7月6日土曜日
ローカルでPythonの環境構築するなら
✤ virtualenvを使うと、ホストマシン内に独立したPython環境を作れます。いろいろインストールしても、ホストマシンは「汚染」されないので便利
✤ easy_install pipでpip(Pythonのライブラリマネージャ)を入れて、pip install virtualenvでvirtualenvをインストール。
✤ virtualenv devenvとして、cd devenv; source bin/activateでdevenvという環境を使ったセッションに切り替わる。以降、いろいろインストールしても、それはdevenvにローカルな変更になり、ホストそのものには影響しない
13年7月6日土曜日
ここで小市民には大きな問題
デバッグのたびに
「ちゃりーん」という音が聞こえる・・・
13年7月6日土曜日
そこでVagrant
新原さんの話に注目!・・・あと本も出るかも?
13年7月6日土曜日
Questions?
13年7月6日土曜日