全部見せます!Chefを1ヶ月半ほど使
あって学んだアレコレ
JAWS-UG 横浜支部 第5回勉強会
「chef on AWS ベストプラクティス」
classmethod.jp 1
2013/07/20 Kazuki Ueki
本日の内容
1ヶ月ほどAWS業務でChefを使って感じた
良いこと・悪いこともろもろ
初めて~中級者向け
classmethod.jp 2
自己紹介
名前:植木和樹(うえき かずき)
年齢:36歳
出身:新潟県妙高市(単身赴任中)
元製造業情報システムG常駐
主にUnixサーバエンジニア(監視、保守)
資格:IPAITサービスマネージャ
IPA システムアーキテクト
JAWS北陸コ...
初めてのchef
classmethod.jp 4
覚え始め
まずは package と service リソースから
↓
template で設定ファイルを作る
↓
attributeで設定ファイルを書き換える
↓
OpscodeのResourceページを読みながら
ちょっとずつリソースの使い...
慣れてきたら
Opscode Public Cookbooksを参考に(パクる)
定番本(超オススメ)
classmethod.jp 6
これだけで7~8割はカバー
• とあるcookbook数 63のリポジトリ
• 使ってるリソースの上位
1. template (87)
2. service(79)
3. package(46)
4. cookbook_file(41)
5....
まずはrecipeを書いてみよう
• 学習コストは低いし将来的にも役立つ
(素直な正規表現レベル)
• Ohai で動的にサーバの状態取得 とか LWRP とか
なるとグッと難しくなる
(メールアドレスをValidationする正規表現)
• ...
Opscode Public Cookbooks
or
オレオレCookbooks
classmethod.jp 9
オレオレで良い
• 必要最小限のレシピ
(Opscodeのは汎用的なので記述が冗長)
• 特殊なことや面倒な設定が必要ならOpscodeで探す
OpscodeのPHPは pear リソースが便利
• Opscodeのは自分で修正しない
(REA...
レシピはどう分割する?
classmethod.jp 11
典型的なパターン
• メイン+サブ機能型
(Apache + mod_xxx)
(CloudWatch + カスタムメトリクス)
• Client + Server型
(xxx::install_client xxx::install_serv...
テストいる?
classmethod.jp 13
いる!絶対!!
• テストのないcookbookは使い捨てのシェ
ルスクリプトと変わらない
• ちゃんとシステムをあるべき姿に
「収束」させることを保証するためにも
テストを実施すべき
classmethod.jp 14
AWSでスクラップ&ビルドな
CI環境を作ろう!
YES! CloudFormation!!
(近日ブログ公開!!・・・予定)
classmethod.jp 15
テスト方法は?
classmethod.jp 16
chefspec/serverspec
classmethod.jp 17
テスト方法 chefspec serverspec
テスト工程 単体テスト 結合テスト
テスト対象 レシピ サーバ
テスト実行 cookbook単位 run_list単位
chefspec
• レシピの書き始めはchefspecが良い
Rubyの文法間違いとかも手元でチェックできて便利
• chefspecはちょっと込み入ったことしよ
うとすると難易度あがる
(EncryptedDataBagとか…マジで教えてく...
serverspec オススメ
• chef適用後のサーバの状態を調べる
• チェックがchefに依存しないので扱いや
すい
• serverspecのテスト対象はrun_listと同期
するのが望ましい
@kenjiskywalker さんの...
Vagrantはどう?
classmethod.jp 20
Cookbook作成時にオススメ
• 環境の構築破棄、VirtualBoxとAWS環境の切り替
えが超簡単
• EC2-Classicがおすすめ
デフォルトVPCでないとPublicDNSが割当らない
(やり方ある?)
• IAM-Roleを割...
まとめ
classmethod.jp 22
AWSとchefは相性いいよ
• 何度でも環境を作りなおせる
• CloudFormationと組み合わせて
「Infrastructure as Code」
• テストが増えても物理サーバいらず
= 省維持コスト
classmethod.jp...
ご清聴ありがとうございました
classmethod.jp 24
Upcoming SlideShare
Loading in …5
×

20130720 jaws yokohama-lightning_talk

3,466 views

Published on

JAWS-UG 横浜支部 第5回勉強会「chef on AWS ベストプラクティス」
Lightning Talk 「全部見せます!Chefを1ヶ月半ほど使って学んだアレコレ」

Published in: Technology

20130720 jaws yokohama-lightning_talk

  1. 1. 全部見せます!Chefを1ヶ月半ほど使 あって学んだアレコレ JAWS-UG 横浜支部 第5回勉強会 「chef on AWS ベストプラクティス」 classmethod.jp 1 2013/07/20 Kazuki Ueki
  2. 2. 本日の内容 1ヶ月ほどAWS業務でChefを使って感じた 良いこと・悪いこともろもろ 初めて~中級者向け classmethod.jp 2
  3. 3. 自己紹介 名前:植木和樹(うえき かずき) 年齢:36歳 出身:新潟県妙高市(単身赴任中) 元製造業情報システムG常駐 主にUnixサーバエンジニア(監視、保守) 資格:IPAITサービスマネージャ IPA システムアーキテクト JAWS北陸コアメンバー(JAWS DAYS 2013~) AWS歴:約5か月(2013年5月Classmethod入社) 好きなAWSサービス:SQS classmethod.jp 3 @czkuk
  4. 4. 初めてのchef classmethod.jp 4
  5. 5. 覚え始め まずは package と service リソースから ↓ template で設定ファイルを作る ↓ attributeで設定ファイルを書き換える ↓ OpscodeのResourceページを読みながら ちょっとずつリソースの使い方を覚えていく classmethod.jp 5
  6. 6. 慣れてきたら Opscode Public Cookbooksを参考に(パクる) 定番本(超オススメ) classmethod.jp 6
  7. 7. これだけで7~8割はカバー • とあるcookbook数 63のリポジトリ • 使ってるリソースの上位 1. template (87) 2. service(79) 3. package(46) 4. cookbook_file(41) 5. directory(27) 6. link(26) 7. execute(6) classmethod.jp 7
  8. 8. まずはrecipeを書いてみよう • 学習コストは低いし将来的にも役立つ (素直な正規表現レベル) • Ohai で動的にサーバの状態取得 とか LWRP とか なるとグッと難しくなる (メールアドレスをValidationする正規表現) • 内部DSLなのでRubyでいろいろやっちゃってる Cookbookもあり (Rubyの知識が必要) classmethod.jp 8
  9. 9. Opscode Public Cookbooks or オレオレCookbooks classmethod.jp 9
  10. 10. オレオレで良い • 必要最小限のレシピ (Opscodeのは汎用的なので記述が冗長) • 特殊なことや面倒な設定が必要ならOpscodeで探す OpscodeのPHPは pear リソースが便利 • Opscodeのは自分で修正しない (READMEやAttribute読んでどう使うのか調べる) • 使えそうな部分だけパクる(2度目) classmethod.jp 10
  11. 11. レシピはどう分割する? classmethod.jp 11
  12. 12. 典型的なパターン • メイン+サブ機能型 (Apache + mod_xxx) (CloudWatch + カスタムメトリクス) • Client + Server型 (xxx::install_client xxx::install_server) • アクション型 (xxx::install、xxx::start) classmethod.jp 12
  13. 13. テストいる? classmethod.jp 13
  14. 14. いる!絶対!! • テストのないcookbookは使い捨てのシェ ルスクリプトと変わらない • ちゃんとシステムをあるべき姿に 「収束」させることを保証するためにも テストを実施すべき classmethod.jp 14
  15. 15. AWSでスクラップ&ビルドな CI環境を作ろう! YES! CloudFormation!! (近日ブログ公開!!・・・予定) classmethod.jp 15
  16. 16. テスト方法は? classmethod.jp 16
  17. 17. chefspec/serverspec classmethod.jp 17 テスト方法 chefspec serverspec テスト工程 単体テスト 結合テスト テスト対象 レシピ サーバ テスト実行 cookbook単位 run_list単位
  18. 18. chefspec • レシピの書き始めはchefspecが良い Rubyの文法間違いとかも手元でチェックできて便利 • chefspecはちょっと込み入ったことしよ うとすると難易度あがる (EncryptedDataBagとか…マジで教えてください) classmethod.jp 18
  19. 19. serverspec オススメ • chef適用後のサーバの状態を調べる • チェックがchefに依存しないので扱いや すい • serverspecのテスト対象はrun_listと同期 するのが望ましい @kenjiskywalker さんのブログを参考に classmethod.jp 19 http://blog.kenjiskywalker.org/blog/2013/07/13/serverspec-chef-cookbook/
  20. 20. Vagrantはどう? classmethod.jp 20
  21. 21. Cookbook作成時にオススメ • 環境の構築破棄、VirtualBoxとAWS環境の切り替 えが超簡単 • EC2-Classicがおすすめ デフォルトVPCでないとPublicDNSが割当らない (やり方ある?) • IAM-Roleを割り当てたEC2起動に対応してない (ソースみた感じだと。やり方ある?) EC2へアクセスする際のクレデンシャルとして設 定できる(Vagrant on EC2用?) classmethod.jp 21
  22. 22. まとめ classmethod.jp 22
  23. 23. AWSとchefは相性いいよ • 何度でも環境を作りなおせる • CloudFormationと組み合わせて 「Infrastructure as Code」 • テストが増えても物理サーバいらず = 省維持コスト classmethod.jp 23
  24. 24. ご清聴ありがとうございました classmethod.jp 24

×