• Like
20130720 jaws yokohama-lightning_talk
Upcoming SlideShare
Loading in...5
×

20130720 jaws yokohama-lightning_talk

  • 2,879 views
Uploaded on

JAWS-UG 横浜支部 第5回勉強会「chef on AWS ベストプラクティス」 …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,879
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
13
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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