ChefとOpsWorksで EC2 楽チンクッキング!

10,204 views

Published on

クラスメソッド課外授業8限目

0 Comments
27 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,204
On SlideShare
0
From Embeds
0
Number of Embeds
5,062
Actions
Shares
0
Downloads
67
Comments
0
Likes
27
Embeds 0
No embeds

No notes for slide

ChefとOpsWorksで EC2 楽チンクッキング!

  1. 1. ChefとOpsWorksでEC2 楽チンクッキング!クラスメソッド株式会社 AWSチーム 大瀧隆太1時間目Twitter #cm_dev
  2. 2. 自己紹介• お名前 : 大瀧隆太• 2013年4月入社• お仕事 : AWSエンジニア• 前職 : VMware認定インストラクター• Twitter : @takipone• BLOG : 会社ブログ– http://dev.classmethod.jp/
  3. 3. アジェンダ1. インフラ管理の自動化の歴史2. Chefとは3. OpsWorksとは4. で、どれを使いましょうか
  4. 4. アンケート• みなさんのご職業は?– アプリケーションエンジニア– インフラエンジニア– マネージャ、PM
  5. 5. アンケート• みなさんのご職業は?– アプリケーションエンジニア– インフラエンジニア– マネージャ、PM皆さんが幸せになる話!のはず…
  6. 6. 1. インフラ管理の自動化の歴史
  7. 7. インフラ管理の自動化の歴史以下の3段階に大別• 手作業(GUI/コマンド地獄(苦笑))• スクリプト/バッチファイル• 構成管理ツール(Chef/Puppet)
  8. 8. 手作業(GUI/コマンド地獄)• オペミス怖い• 手順書をコピペしまくる– インストールなど同じ手順を誤って2回実行とか死亡フラグ• 覚えきれない!– アプリケーションによってGUIのルック&フィール、コマンドのオプション、構成ファイルが全然違う
  9. 9. スクリプト手順をそのままテキストファイルに記述し、一括実行!• バッチファイル、シェルスクリプト• Perl、Python、RubyといったLL再実行性やマルチプラットフォームを意識すると難易度が格段にアップ
  10. 10. 構成管理ツール(Chef/Puppet)• 最近よく呼ばれるのが“Provisioning Framework”• なんとかConfiguration Managerみたいな、ベンダの構成管理ツールもあるけど・・・• 注目株はChef or Puppet!!
  11. 11. Chef、Puppetをおすすめする理由以下2点がChef / Puppetにはある!1. Infrastructure as Code!!2. べき等性と収束
  12. 12. Chef、Puppetをおすすめする理由1. Infrastructure as Code!!– 設定がシンプルで見やすいので...– アプリエンジニアがインフラエンジニアの領域に踏み込む→AWSならHW不要なので、インフラエンジニア抜きでもシステム運用が可能に!– インフラエンジニアのスケーラビリティの向上→少人数のインフラチームでも大規模なシステムの面倒が見られる!– アプリケーションエンジニアとインフラエンジニアのコミュニケーションツールとして有用→開発のスピードアップ、険悪な関係が改善されるかも
  13. 13. Chef、Puppetをおすすめする理由2.べき等性(Idempotence)と収束(Convergence)– 何度実行しても同じ結果になること– システムの”あるべき状態”を管理する
  14. 14. Chef/Puppetの心得• コマンドで直接作業するのはご法度。我慢する。• AWS EC2インスタンスの場合は、いろんな用途のインスタンスを“共通の”AMIイメージで作成・管理する。
  15. 15. Chef/Puppetの心得• コマンドで直接作業するのはご法度。我慢する。• AWS EC2インスタンスの場合は、いろんな用途のインスタンスを“共通の”AMIイメージで作成・管理する。・・・実際は茨の道です。
  16. 16. Chef/Puppetの心得自動車の組み立てで例えると...• 従来– 工員さんがドリルや工具を使って組み立て• Chef/Puppet– 組み立てロボットで全自動で組み立て
  17. 17. Chef/Puppetの心得自動車の組み立てで例えると...• 従来– 工員さんがドリルや工具を使って組み立て• Chef/Puppet– 組み立てロボットで全自動で組み立て妥協するかどうかは選択自由
  18. 18. ChefとPuppet、どっち?• どっちでもいいらしい。好みで選びましょう。
  19. 19. ChefとPuppet、どっち?• どっちでもいいらしい。好みで選びましょう。今回はOpsWorksを紹介する &なんとなく盛り上がっていそうな気がするChefで!
  20. 20. 2. Chefとは
  21. 21. Chefの紹介• Opsworks社が開発する、オープンソースの構成管理ツールです。– http://www.opscode.com/chef/
  22. 22. Chefの紹介• Opsworks社が開発する、オープンソースの構成管理ツールです。– http://www.opscode.com/chef/OpsWorks
  23. 23. Chefの構成• Chefを実行するための構成は、以下の2通り– Chef Solo– Chef Client & Chef Server– ※ 別途Chef Workstation(コマンドを実行するマシン)を利用することが多い
  24. 24. Chefの構成 - Chef Solo• スタンドアロンタイプ– ローカルにChefの設定ファイルを持ち、ローカルシステムに構成を適用する設定EC2インスタンス
  25. 25. Chefの構成 - Chef Solo• スタンドアロンタイプ– ローカルにChefの設定ファイルを持ち、ローカルシステムに構成を適用する設定EC2インスタンス適用
  26. 26. Chefの構成 - Chef Client & Server• クライアントサーバー(C/S)タイプ– クライアントはサーバーにある設定ファイルをダウンロードし、ローカルシステムに適用する設定EC2インスタンス(Chef Server)EC2インスタンス(Chef Client)
  27. 27. Chefの構成 - Chef Client & Server• クライアントサーバー(C/S)タイプ– クライアントはサーバーにある設定ファイルをダウンロードし、ローカルシステムに適用する設定EC2インスタンス(Chef Server)適用EC2インスタンス(Chef Client)設定ダウンロード
  28. 28. Chefの構成の比較• Chef Soloの方が簡単。• Chef C/Sでしか使えない機能がある。
  29. 29. Chefの構成の比較• Chef Soloの方が簡単。• Chef C/Sでしか使えない機能がある。規模によって使い分けましょう
  30. 30. 主なChefの設定• Cookbook– Chefの設定をまとめる単位、実際はフォルダ• Recipe– Chefで構成する内容を記述するファイル– Rubyで書く• Template– 設定ファイルのひな形となるファイル– Erb形式(Rubyの変数が埋め込めるテンプレートファイル)• Attribute– Chef Clientを実行するマシン(ノード)のデフォルトのパラメータファイル。これもRubyで書く• Environment(C/Sのみ)– 複数のノードをグループでまとめる機能
  31. 31. Chef Soloのデモ
  32. 32. 3. OpsWorksとは
  33. 33. OpsWorks概要• Peritor社のScalariumがベース– http://www.scalarium.com/– http://support.scalarium.com/• Amazonが買収し、2013年2月にAWSブランドのAmazon OpsWorksで再リリース– 現在はオープンベータ版
  34. 34. OpsWorksの構成 (1)• Chef Solo + LifeCycleEvents– 既存のChef Cookbook(カスタム Cookbook)を持ち込むときはひと手間必要設定EC2インスタンスアップロード設定OpsWorksサーバー(ユーザーからは見えない)適用
  35. 35. OpsWorksの構成 (2)Chefとは別に、EC2インスタンスを管理する以下の仕組みを利用• Stack– OpsWorks全体の単位[Cookbookを指定する]• Layer– インスタンスのグループ[Recipeを指定する]• Instance– OpsWorks管理下のEC2インスタンス• Application– 配置するアプリケーション• GUIとCLI両方あり
  36. 36. OpsWorks イマイチなところ(小さな声で)• “非対応”のAWSコンポーネント– VPCダメ (※Default VPC限定で対応)– Auto Scalingダメ (※OpsWorks独自の簡易版あり)• 他のAWSコンポーネントとは“連携しない”– EC2周辺は連携(例 : AMI、EBS、Security Group)– RDS(Managed データベース)連携が欲しい• [UPDATE]ELB (Managed ロードバランサ)連携– 昨日(5/15)対応!※ AWSではよくあること
  37. 37. OpsWorks デモ
  38. 38. 4. で、どれを使えばいいの?
  39. 39. Chef単体とOpsWorksの比較Chef単体• C/S構成の場合、Chef Serverが必要• C/S構成の場合、Environmentなどが使える• 多彩なChefプラグインが使える• AWSに依存しないOpsWorks• 管理インスタンス不要• Chefの機能は、Chef Solo相当• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える– ただし、発展途上
  40. 40. Chef単体とOpsWorksの比較Chef単体• C/S構成の場合、Chef Serverが必要• C/S構成の場合、Environmentなどが使える• 多彩なChefプラグインが使える• AWSに依存しないOpsWorks• 管理インスタンス不要• Chefの機能は、Chef Solo相当• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える– ただし、発展途上決定版!というのはない
  41. 41. Chef単体とOpsWorksの比較Chef単体• C/S構成の場合、Chef Serverが必要• C/S構成の場合、Environmentなどが使える• 多彩なChefプラグインが使える• AWSに依存しないOpsWorks• 管理インスタンス不要• Chefの機能は、Chef Solo相当• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える– ただし、発展途上決定版!というのはないここに期待しつつ、動向を見守りましょう
  42. 42. 補足• Chefの勉強をしておくのは絶対損しない!– べき等性の考え方に慣れておくべき!– コードでインフラを管理するのは今後主流になる!はず。• @naoya_itoさんの入門Chef Soloがおすすめ– 各種電子書籍で入手できます– 私はこれを読みたいがためにKindle Fire HD買いました。
  43. 43. 宣伝• クラスメソッドでは、AWSエンジニアを募集中です!尖がったAWSのSIしてます– ブログ書き放題(35万PV/月のブログにいきなり書けます)– AWS案件関わり放題 (大規模案件アリ)– アキバで寄り道し放題– ある程度AWS環境触り放題• 詳細はWebもしくは会場スタッフまで!– http://classmethod.jp/
  44. 44. ご清聴ありがとうございました!

×