Jawsug神戸2 jenkinsとfabricでamiの自動作成とオートスケール

3,602 views

Published on

JAWSUG神戸第2回で発表したスライドです。

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,602
On SlideShare
0
From Embeds
0
Number of Embeds
1,230
Actions
Shares
0
Downloads
11
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Jawsug神戸2 jenkinsとfabricでamiの自動作成とオートスケール

  1. 1. 2013/7/6 JAWSUG-Kobe #2 OpsWorks (Chef) 特集 & fabric & boto & awscliで AMIの自動作成 & AutoScale 玉川竜司 13年7月6日土曜日
  2. 2. 軽く自己紹介 Sky株式会社でいろいろやってます。 兼業翻訳やってます。 tamagawa_ryuji@twitter / RyujiTamagawa@FB 13年7月6日土曜日
  3. 3. 今日のお話 ✤ コードをコミットしたら ✤ ビルドして ✤ AMIを作成して ✤ AutoScaleのLaunchConfig書き換えて ✤ インスタンスを入れ替えます ここを完全に 自動化します 13年7月6日土曜日
  4. 4. 今回のシステム構成と動作 GitHub ソース コード ソース コード ソース コード fabric boto awscli AutomaticDeployer (t1.micro with IAM Role) build workspace Launch Config ①監視 ②取得して ビルド ③インスタンスを 作成してsshで 中身を設定 ④カスタムAMIを作成し、 そのAMIを使う LaunchConfigを作成 ⑤インスタンスを 入れ替え Amazon Linux AMI 13年7月6日土曜日
  5. 5. デモ 13年7月6日土曜日
  6. 6. それでは順番に説明します 13年7月6日土曜日
  7. 7. ✤ ご存じ万能執事さん ✤ gitプラグインを入れれば、ちょっとした設定でGitHubのポーリング が可能 ✤ GitHubのリポジトリが更新されていたら、中身をとってきてビルド 実行 ✤ 今回は、fabricを呼び出して処理を行っている 13年7月6日土曜日
  8. 8. 今回使った道具 ✤ 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日土曜日
  9. 9. fabricのいいところ ✤ fabfile.pyを書いていって、カスタムのコマンドを増やしていく感じ ✤ コマンドを個別に実行できるので、試しながらのスクリプティングが 非常に楽ちん ✤ sshやscp、複数サーバーの扱いなど、低レベルのビルディングブロ ックが提供されている ✤ 要するに「スーパーssh」な感じなので、敷居が低い 13年7月6日土曜日
  10. 10. botoについて ✤ Pythonの人には楽ちん ✤ ドキュメントはちょっとわかりにくい ✤ 薄い本出てます(電子書籍 ) ✤ IAM Rolesに対応しているところは高ポ イント 13年7月6日土曜日
  11. 11. 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日土曜日
  12. 12. awscliと.jq ✤ 軽量な公式コマンドラインツール。ただし、すべてのサービスがカバ ーされているわけでは(まだ)ない ✤ コマンドのレスポンスがJSONで返される ✤ JSONフィルタのjqを使えば、レスポンスの扱いが楽 13年7月6日土曜日
  13. 13. ローカルでPythonの環境構築するなら ✤ virtualenvを使うと、ホストマシン内に独立したPython環境を作れます。いろいろイ ンストールしても、ホストマシンは「汚染」されないので便利 ✤ easy_install pipでpip(Pythonのライブラリマネージャ)を入れて、pip install virtualenvでvirtualenvをインストール。 ✤ virtualenv devenvとして、cd devenv; source bin/activateでdevenvという環境を 使ったセッションに切り替わる。以降、いろいろインストールしても、それはdevenv にローカルな変更になり、ホストそのものには影響しない 13年7月6日土曜日
  14. 14. ここで小市民には大きな問題 デバッグのたびに 「ちゃりーん」 という音が聞こえる・・・ 13年7月6日土曜日
  15. 15. そこでVagrant 新原さんの話に注目! ・・・あと本も出るかも? 13年7月6日土曜日
  16. 16. Questions? 13年7月6日土曜日

×