chefとopsworksで ec2 楽チンクッキング!

44
ChefとOpsWorksで EC2 楽チンクッキング! クラスメソッド株式会社 AWSチーム 大瀧隆太 1時間目 Twitter #cm_dev

Post on 29-Nov-2014

7.665 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

ChefとOpsWorksで EC2 楽チンクッキング! クラスメソッド株式会社 AWSチーム 大瀧隆太

1時間目

Twitter #cm_dev

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

自己紹介

• お名前 : 大瀧隆太

• 2013年4月入社

• お仕事 : AWSエンジニア

• 前職 : VMware認定インストラクター

• Twitter : @takipone

• BLOG : 会社ブログ

– http://dev.classmethod.jp/

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

アジェンダ

1. インフラ管理の自動化の歴史

2. Chefとは

3. OpsWorksとは

4. で、どれを使いましょうか

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

アンケート

• みなさんのご職業は?

– アプリケーションエンジニア

– インフラエンジニア

– マネージャ、PM

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

アンケート

• みなさんのご職業は?

– アプリケーションエンジニア

– インフラエンジニア

– マネージャ、PM

皆さんが幸せになる話!のはず…

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

1. インフラ管理の自動化の歴史

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

インフラ管理の自動化の歴史

以下の3段階に大別

• 手作業(GUI/コマンド地獄(苦笑))

• スクリプト/バッチファイル

• 構成管理ツール(Chef/Puppet)

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

手作業(GUI/コマンド地獄)

• オペミス怖い

• 手順書をコピペしまくる

– インストールなど同じ手順を誤って2回実行とか死亡フラグ

• 覚えきれない!

– アプリケーションによってGUIのルック&フィール、コマンドのオプション、構成ファイルが全然違う

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

スクリプト

手順をそのままテキストファイルに記述し、一括実行!

• バッチファイル、シェルスクリプト

• Perl、Python、RubyといったLL

再実行性やマルチプラットフォームを意識すると難易度が格段にアップ

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

構成管理ツール(Chef/Puppet)

• 最近よく呼ばれるのが

“Provisioning Framework” • なんとかConfiguration Manager

みたいな、ベンダの構成管理ツールも あるけど・・・

• 注目株はChef or Puppet!!

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

Chef、Puppetをおすすめする理由

以下2点がChef / Puppetにはある!

1. Infrastructure as Code!!

2. べき等性と収束

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

Chef、Puppetをおすすめする理由

1. Infrastructure as Code!! – 設定がシンプルで見やすいので...

– アプリエンジニアがインフラエンジニアの領域に踏み込む →AWSならHW不要なので、インフラエンジニア 抜きでもシステム運用が可能に!

– インフラエンジニアのスケーラビリティの向上 →少人数のインフラチームでも大規模なシステムの 面倒が見られる!

– アプリケーションエンジニアとインフラエンジニアの コミュニケーションツールとして有用 →開発のスピードアップ、険悪な関係が改善されるかも

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

Chef、Puppetをおすすめする理由

2.べき等性(Idempotence)と

収束(Convergence)

– 何度実行しても同じ結果になること

– システムの”あるべき状態”を管理する

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

Chef/Puppetの心得

• コマンドで直接作業するのはご法度。

我慢する。

• AWS EC2インスタンスの場合は、 いろんな用途のインスタンスを

“共通の”AMIイメージで作成・管理

する。

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

Chef/Puppetの心得

• コマンドで直接作業するのはご法度。

我慢する。

• AWS EC2インスタンスの場合は、 いろんな用途のインスタンスを

“共通の”AMIイメージで作成・管理

する。

・・・実際は茨の道です。

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

Chef/Puppetの心得

自動車の組み立てで例えると...

• 従来

– 工員さんがドリルや 工具を使って組み立て

• Chef/Puppet

– 組み立てロボットで 全自動で組み立て

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

Chef/Puppetの心得

自動車の組み立てで例えると...

• 従来

– 工員さんがドリルや 工具を使って組み立て

• Chef/Puppet

– 組み立てロボットで 全自動で組み立て

妥協するかどうかは選択自由

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

ChefとPuppet、どっち?

• どっちでもいいらしい。 好みで選びましょう。

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

ChefとPuppet、どっち?

• どっちでもいいらしい。 好みで選びましょう。

今回はOpsWorksを紹介する & なんとなく

盛り上がっていそうな気がする Chefで!

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

2. Chefとは

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

Chefの紹介

• Opsworks社が開発する、オープンソースの構成管理ツールです。

– http://www.opscode.com/chef/

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

Chefの紹介

• Opsworks社が開発する、オープンソースの構成管理ツールです。

– http://www.opscode.com/chef/

OpsWorks

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

Chefの構成

• Chefを実行するための構成は、 以下の2通り

– Chef Solo

– Chef Client & Chef Server

– ※ 別途Chef Workstation(コマンドを実行 するマシン)を利用することが多い

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

Chefの構成 - Chef Solo

• スタンドアロンタイプ

– ローカルにChefの設定ファイルを持ち、ローカルシステムに構成を適用する

設定

EC2インスタンス

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

Chefの構成 - Chef Solo

• スタンドアロンタイプ

– ローカルにChefの設定ファイルを持ち、ローカルシステムに構成を適用する

設定

EC2インスタンス

適用

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

Chefの構成 - Chef Client & Server

• クライアントサーバー(C/S)タイプ

– クライアントはサーバーにある設定ファイルをダウンロードし、ローカルシステムに適用する

設定

EC2インスタンス (Chef Server)

EC2インスタンス (Chef Client)

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

Chefの構成 - Chef Client & Server

• クライアントサーバー(C/S)タイプ

– クライアントはサーバーにある設定ファイルをダウンロードし、ローカルシステムに適用する

設定

EC2インスタンス (Chef Server)

適用

EC2インスタンス (Chef Client)

設定

ダウンロード

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

Chefの構成の比較

• Chef Soloの方が簡単。

• Chef C/Sでしか使えない機能がある。

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

Chefの構成の比較

• Chef Soloの方が簡単。

• Chef C/Sでしか使えない機能がある。

規模によって使い分けましょう

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

主なChefの設定

• Cookbook – Chefの設定をまとめる単位、実際はフォルダ

• Recipe – Chefで構成する内容を記述するファイル – Rubyで書く

• Template – 設定ファイルのひな形となるファイル – Erb形式(Rubyの変数が埋め込めるテンプレートファイル)

• Attribute – Chef Clientを実行するマシン(ノード)のデフォルトのパ

ラメータファイル。これもRubyで書く

• Environment(C/Sのみ) – 複数のノードをグループでまとめる機能

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

Chef Soloのデモ

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

3. OpsWorksとは

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

OpsWorks概要

• Peritor社のScalariumがベース – http://www.scalarium.com/

– http://support.scalarium.com/

• Amazonが買収し、2013年2月に AWSブランドのAmazon OpsWorksで 再リリース

– 現在はオープンベータ版

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

OpsWorksの構成 (1)

• Chef Solo + LifeCycleEvents

– 既存のChef Cookbook(カスタム Cookbook)を持ち込むときはひと手間必要

設定

EC2インスタンス

アップロード

設定

OpsWorksサーバー (ユーザーからは見えない)

適用

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

OpsWorksの構成 (2)

Chefとは別に、EC2インスタンスを管理する 以下の仕組みを利用 • Stack

– OpsWorks全体の単位[Cookbookを指定する]

• Layer – インスタンスのグループ[Recipeを指定する]

• Instance – OpsWorks管理下のEC2インスタンス

• Application – 配置するアプリケーション

• GUIとCLI両方あり

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

OpsWorks イマイチなところ(小さな声で)

• “非対応”のAWSコンポーネント

– VPCダメ (※Default VPC限定で対応)

– Auto Scalingダメ (※OpsWorks独自の簡易版あり)

• 他のAWSコンポーネントとは“連携しない”

– EC2周辺は連携(例 : AMI、EBS、Security Group)

– RDS(Managed データベース)連携が欲しい

• [UPDATE]ELB (Managed ロードバランサ)連携

– 昨日(5/15)対応! ※ AWSではよくあること

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

OpsWorks デモ

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

4. で、どれを使えばいいの?

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

Chef単体とOpsWorksの比較

Chef単体

• C/S構成の場合、 Chef Serverが必要

• C/S構成の場合、Environmentなどが使える

• 多彩なChefプラグインが使える

• AWSに依存しない

OpsWorks

• 管理インスタンス不要

• Chefの機能は、 Chef Solo相当

• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える – ただし、発展途上

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

Chef単体とOpsWorksの比較

Chef単体

• C/S構成の場合、 Chef Serverが必要

• C/S構成の場合、Environmentなどが使える

• 多彩なChefプラグインが使える

• AWSに依存しない

OpsWorks

• 管理インスタンス不要

• Chefの機能は、 Chef Solo相当

• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える – ただし、発展途上

決定版!というのはない

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

Chef単体とOpsWorksの比較

Chef単体

• C/S構成の場合、 Chef Serverが必要

• C/S構成の場合、Environmentなどが使える

• 多彩なChefプラグインが使える

• AWSに依存しない

OpsWorks

• 管理インスタンス不要

• Chefの機能は、 Chef Solo相当

• EC2インスタンスの外側(AWSコンポーネントなど)との連携機能が使える – ただし、発展途上

決定版!というのはない ここに期待しつつ、動向を見守りましょう

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

補足

• Chefの勉強をしておくのは絶対損しない!

– べき等性の考え方に慣れておくべき!

– コードでインフラを管理するのは今後 主流になる!はず。

• @naoya_itoさんの 入門Chef Soloがおすすめ

– 各種電子書籍で入手できます

– 私はこれを読みたいがために Kindle Fire HD買いました。

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

宣伝

• クラスメソッドでは、AWSエンジニアを募集中です!尖がったAWSのSIしてます

– ブログ書き放題 (35万PV/月のブログにいきなり書けます)

– AWS案件関わり放題 (大規模案件アリ)

– アキバで寄り道し放題

– ある程度AWS環境触り放題

• 詳細はWebもしくは会場スタッフまで!

– http://classmethod.jp/

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

ご清聴ありがとうございました!