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