Slide 1

Slide 1 text

第8回 Cloud Foundry輪読会 ぼっしゅぼっしゅ (BOSHを使って AWSにCloud FoundryWordPressを 簡単に構築しよう) Katsunori Kawaguchi @hamakn 2012-07-26

Slide 2

Slide 2 text

お詫びと訂正

Slide 3

Slide 3 text

予告:BOSHを使って、 AWSにCloud Foundryを 簡単に構築(できるといいな) 2012-07-26 Katsunori Kawaguchi

Slide 4

Slide 4 text

現実:BOSHを使って、 AWSにCloud Foundryを 構築(できませんでした…) 2012-07-26 Katsunori Kawaguchi ※追記(2012-07-29) その後、natsサーバだけw はデプロイできました。 スライドの最終ページに追加してあります。

Slide 5

Slide 5 text

BOSHを使って、 AWSに3VM構成のWordPressは 簡単に構築できた 2012-07-26 Katsunori Kawaguchi

Slide 6

Slide 6 text

今日話すこと • AWSでBOSHを使う方法について 話します。 • BOSHを使った、 Cloud Foundryの運用についても考えます。

Slide 7

Slide 7 text

自己紹介 • 川口 克則 @hamakn • NTTコム所属 • Application Engineer && Rails Programmer • 最近は、自社のCloud Foundryの メンテナンスをしたり、 Appを乗せるサポートをしています。

Slide 8

Slide 8 text

うちのCloud Foundry

Slide 9

Slide 9 text

前回(第7回)のおさらい • BOSHとは? – IaaSまで含めて管理できる、 デプロイシステム – BOSH自身が分散システム – OSS https://github.com/cloudfoundry/bosh/ – Rubyで実装

Slide 10

Slide 10 text

http://www.slideshare.net/chanezon/cloud-foundry-bosh-where-the-platform-rubber-meets-the-infrastructure-road-chefconf p.26

Slide 11

Slide 11 text

今日必要なBOSH用語 • Stemcell: – bosh agentが入ったOSのイメージのこと • micro BOSH: – 1VMで動くBOSHのこと • {cf|sample}-release: – リリース可能な、Cloud FoundryまたはWordPressの ソース・バイナリの組み合わせのこと • manifest: – releaseに与える、設定ファイルのこと • bosh director: – VMの作成やVMへのデプロイを制御する BOSHのプロセスのこと

Slide 12

Slide 12 text

BOSHの詳細は… • すごいBOSHたのしく学ぼう http://www.slideshare.net/i_yudai/bosh-13404516

Slide 13

Slide 13 text

その場でアンケート • Cloud Foundryを複数VMで構築して 運用している方? 6人 • 既にBOSHで運用している方? 0人

Slide 14

Slide 14 text

今日の話 1. AWSにmicro BOSHを構築する 2. stemcellとcf-releasesample-releaseを micro BOSHにuploadする 3. manifestを書いて CloudFoundryWordPressをデプロイする 4. WordPressを更新する 5. 他のやり方と比較する (対dev_setup, capistrano)

Slide 15

Slide 15 text

参考になるもの • BOSH公式(ただしvSphere向け) https://github.com/cloudfoundry/bosh • AWS向けのチュートリアルが豊富 https://github.com/drnic/bosh-getting-started • メーリングリスト – bosh-users – bosh-dev • この発表の資料 https://github.com/hamakn/bosh-files

Slide 16

Slide 16 text

AWSにmicro BOSHを構築する • 前提: bosh microコマンドが使えること – “すごいBOSH”など参照 • micro boshのstemcellを取得する $ bosh download public stemcell micro-bosh-stemcell-aws- 0.6.2.tgz • manifestファイルを作って指定する $ vim aws/micro_bosh.yml # 参考 https://github.com/hamakn/bosh- files/blob/master/manifests/micro-bosh-northeast.yml $ bosh micro deployment aws • デプロイする $ bosh micro deploy

Slide 17

Slide 17 text

デプロイ風景 • deploy時の画面

Slide 18

Slide 18 text

stemcellとsample-releaseを micro BOSHにuploadする • micro BOSHに接続 $ bosh target ec2-(略)-amazonaws.com:25555 $ bosh login (デフォルトだとadmin/admin) • stemcell $ bosh download public stemcell bosh-stemcell-aws-0.5.1.tgz $ bosh upload stemcell bosh-stemcell-aws-0.5.1.tgz • sample-release $ git clone git://github.com/cloudfoundry/bosh-sample- release.git $ bosh create release releases/sample-1.yml $ bosh upload release releases/sample-1.yml

Slide 19

Slide 19 text

東京リージョンの場合 • bosh-stemcell-aws-0.5.1.tgzの場合、 micro BOSHにsshして、 Bosh::AwsCloud::Cloud#create_stemcell を直さないとエラー(Error 100)でした。 • https://gist.github.com/3181157 • 修正後、 $ ps auwx|grep “bosh/director”|awk ‘{print “kill ”,$2}’|sh でbosh directorが再起動して修正が反映されます。

Slide 20

Slide 20 text

Uploadが終わった状態

Slide 21

Slide 21 text

manifestを書いて WordPressをデプロイする • Elastic IPsの取得 AWS-ConsoleからでOK • デプロイ $ vim wp/wordpress.yml # 参考 https://github.com/hamakn/bosh- files/blob/master/manifests/wordpress-northeast.yml $ bosh deployment wp $ bosh deploy

Slide 22

Slide 22 text

続き

Slide 23

Slide 23 text

BOSHでWordPressを更新する • PHPを5.3.10から、 5.3.15に上げたところ、 8秒程度の断が発生しました。 • 同時に作業するWorkerの数を manifestで指定できるので、 DEAとかはローリングアップデート することになるのだと思います。

Slide 24

Slide 24 text

他のやり方との比較 • マシン一桁 … dev_setupがお手軽 • マシン二桁 … capistranoベースでもなん とかなった • マシン三桁 … BOSHないとたぶん死ぬ • Blobstoreでリンク切れしないのが良い • BOSHが流行るといいですね!

Slide 25

Slide 25 text

Cloud FoundryでBOSH できなかったわけ • Elastic IPが足りない – VPC用のCPIを書けばできそう • 細い回線だと、リポジトリのcloneと、 create releaseと、upload release にすごい時間かかる • 有言不実行ですみません。。

Slide 26

Slide 26 text

今回検証したバージョン • bosh_cli 0.19.4 • micro BOSH 0.6.2-aws • stemcell 0.5.1-aws • AWS northeast(東京) • Ruby 1.9.2-p290

Slide 27

Slide 27 text

まとめ 1. AWSにmicro BOSHを構築する 2. stemcellとcf-releasesample-releaseを micro BOSHにuploadする 3. manifestを書いて CloudFoundryWordPressをデプロイする 4. WordPressを更新する 5. 他のやり方と比較する (対dev_setup, capistrano)

Slide 28

Slide 28 text

2012-07-29 追記 • natsだけw の構成が無事デプロイできました。 • それ以降は、CCとかのmanifestの書式が 変わっててPreparing configurationで 落ちています。bosh-usersで聞こう λ...

Slide 29

Slide 29 text

おわりです この件はそのうちリベンジしたい…