さくらのクラウドフォーメーション with Chef [XEgg session]

38
さくらの クラウドフォーメーション with Chef “さくらのクラウド x Chef Meetup Kansai” XEgg 1st『クラウド未経験者向け ITコミュニティ&クラウドベンダー合同勉強会』 @sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15

description

Innovation EGG 第二回 XEgg 1st『クラウド未経験者向けITコミュニティ&クラウドベンダー合同勉強会』 の発表で使用した資料です。

Transcript of さくらのクラウドフォーメーション with Chef [XEgg session]

Page 1: さくらのクラウドフォーメーション with Chef [XEgg session]

さくらの クラウドフォーメーション

with Chef“さくらのクラウド x Chef Meetup Kansai”

!XEgg 1st『クラウド未経験者向け

ITコミュニティ&クラウドベンダー合同勉強会』 !!

@sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15

Page 2: さくらのクラウドフォーメーション with Chef [XEgg session]

コミュニティChef Meetup Kansai

• ChefやInfrastructure as Codeの話を

• 参加者全員が少しづつ発表する

• 主催者がよそのイベントでしゃべる

• 不定期開催

2

Page 3: さくらのクラウドフォーメーション with Chef [XEgg session]

HiganWorks, OpsRockについて

3

• http://opsrock.in 共同開発・運営

• AWS OpsWorksとChef、インフラのテストを取り扱うソリューションを提供

• アプリケーションのためのプラットフォーム構築/運用自動化をテーマに活動

Page 4: さくらのクラウドフォーメーション with Chef [XEgg session]

アンケート挙手のお願い• セッション中、発表者から簡単な質問をする

ことがあります。

• ご遠慮なさらず、恥ずかしがらずに挙手いたけると助かります。 !

• よろしくお願いいたします。

4

Page 5: さくらのクラウドフォーメーション with Chef [XEgg session]

内容1.Chefをざっくり説明 2.さわってみました『さくらのクラウド』 ※コミュニティを代表する個人の感想です

3.Chefとインテグレーションしてみました 4.MongoDBクラスタをつくってみました ※Githubで公開、再現可能

5

Page 6: さくらのクラウドフォーメーション with Chef [XEgg session]

1.Chef

Page 7: さくらのクラウドフォーメーション with Chef [XEgg session]

Chefについて• 米Chef社による構成管理フレームワーク

• Chef-Server(Enterprise/OpenSource)

• ノード(サーバ)情報の集約

• ポリシー配布のハブ

• Chef-Client

• ノード情報の収集

• レポーティング

• ポリシーの適用(リソース収束)

• 外部APIの操作

7

Page 8: さくらのクラウドフォーメーション with Chef [XEgg session]

Infrastructure as Code• 手順書、テスト仕様、構成管理等々を

• コードとして記述し、再現可能とする

• オブジェクトで表し、抽象化する

• その他いろいろ再利用可能なリソースに

• あと冪等性 !

• ちなみに、物理の知識はあるだけ有効

• ラック契約、電源容量、回線手配、スイッチ類、サーバ、etc..

8

Page 9: さくらのクラウドフォーメーション with Chef [XEgg session]

より詳しく• ここだけの話ですが(以下省略

9

Page 10: さくらのクラウドフォーメーション with Chef [XEgg session]

Chef x クラウド(IaaS)• コンピュータリソースがAPI調達できる

• ノード作成/登録+Role適用(サーバ設定)

• Chef-ServerでノードをIDほか属性で管理 !

• または

• コンパネからサーバ作ってログインしてホスト名とかつけてChefをインストールして設定してCookbookを用意してChefSoloを流して表計算ソフトで管理してもいいとおもいます

10

Page 11: さくらのクラウドフォーメーション with Chef [XEgg session]

2.さわってみました 『さくらのクラウド』

Page 12: さくらのクラウドフォーメーション with Chef [XEgg session]

サインアップのコツ• ありがとう田中社長

12

Page 13: さくらのクラウドフォーメーション with Chef [XEgg session]

印象1:さくらのクラウド• アカウント&ユーザのモデルがある

• 権限割り当てや複数環境の区別によい

• REST APIがあるのでプログラミングできそう

13

Page 14: さくらのクラウドフォーメーション with Chef [XEgg session]

印象2:さくらのクラウド• 組み合わせられる要素が沢山

• ストレージ(ディスクボリューム)

• サーバ※なんとディスクレスもOK

• スイッチ&ネットワーク

• ロードバランサ(DSR!)

14

Page 15: さくらのクラウドフォーメーション with Chef [XEgg session]

とりえあずサーバを 動かすまでのAPIコール

1.ネットワーク確認 2.サーバ作成(NICをつける) 3.ディスク作成 •アーカイブ(テンプレート)から複製を待つ

4.ディスクを修正 •ログイン用にSSH公開鍵を書き込み

5.ディスクをサーバにアタッチ 6.ブート!

15

Page 16: さくらのクラウドフォーメーション with Chef [XEgg session]

総合印象:プラモデルっぽい

16

※写真引用元: 比企さんのFacebookタイムライン

Page 17: さくらのクラウドフォーメーション with Chef [XEgg session]

(Chef meetup視点で) 海外と比較

Page 18: さくらのクラウドフォーメーション with Chef [XEgg session]

海外と比べてみる?• APIつきなクラウド(IaaSやVPN)

18

Page 19: さくらのクラウドフォーメーション with Chef [XEgg session]

海外なクラウドAPIの特徴• シンプルなレスポンス

• 自由度はあまりない (※AWSは除こう)

• 高速なリソース確保

• 有り物を、使いたい時にすぐ用意したり廃棄したり

• サービスに即投入

19

Page 20: さくらのクラウドフォーメーション with Chef [XEgg session]

総合印象:海外は完成品/傭兵

20

※写真引用元: 比企さんのFacebookタイムライン

Page 21: さくらのクラウドフォーメーション with Chef [XEgg session]

たとえばコンピュータリソース

• DigitalOcean, Joyentあたりは10~30秒で操作開始OK

• Infrastructure as Codeは、結構スクラップ&ビルドでテストしたい

• 早いと嬉しい

21

Page 22: さくらのクラウドフォーメーション with Chef [XEgg session]

ホビー対傭兵な印象 22

プラモデル: ガンダムさん達が 大地に立つまで一手間かける

傭兵: ガンダムさん達 大地にもう立ってる

vs.

Page 23: さくらのクラウドフォーメーション with Chef [XEgg session]

使いづらいのかね? さくら…

からスタート

• レスポンスが冗長

• APIの標準が日本語

• 結構503くれる

Page 24: さくらのクラウドフォーメーション with Chef [XEgg session]

3.Chefと インテグレーション

してみました

Page 25: さくらのクラウドフォーメーション with Chef [XEgg session]

Chef x クラウド(IaaS)のフロー1.APIでコンピュータリソース作成

2.『戻り値』のIPアドレスを使用してSSHでつつく、つつく

3.オンラインと同時にChef-Clientをインストール&Chef-Serverに登録

4.Environment(環境), Role(役割)の割り当て

5.レシピが要るならその時に適用

6.ここまでコマンド(knife)1回の実行で実施

25

Page 26: さくらのクラウドフォーメーション with Chef [XEgg session]

fog.io(クラウド共通ライブラリ)

26

Page 27: さくらのクラウドフォーメーション with Chef [XEgg session]

fogについて• 世界中で’良さ気’とされるパブリック/プラ

イベートクラウドを操作する為のライブラリ

• Compute、Storage、Network、DNSなどが対象

• 各種プロバイダに対応

27

日本のないんか!!

Page 28: さくらのクラウドフォーメーション with Chef [XEgg session]

作りました (※クーポンくれたし)

Page 29: さくらのクラウドフォーメーション with Chef [XEgg session]

本家マージを目指してプルリクエスト (親切な)コードレビューの応酬

29

※ご覧のセッションは Chefがテーマです

Page 30: さくらのクラウドフォーメーション with Chef [XEgg session]

Getting Startedも作成 30

https://github.com/higanworks/fog/blob/pull_sakuracloud2/lib/fog/sakuracloud/docs/getting_started.md

Page 31: さくらのクラウドフォーメーション with Chef [XEgg session]

サーバ作成サンプル

31

require  'fog'  compute  =  Fog::Compute::SakuraCloud.new(      :sakuracloud_api_token  =>  'YOUR_API_TOKEN',      :sakuracloud_api_token_secret  =>  'YOUR_API_TOKEN_SECRET'  )  !!server  =  compute.servers.create({      :sakuracloud_api_token  =>  'YOUR_API_TOKEN',      :sakuracloud_api_token_secret  =>  'YOUR_API_TOKEN_SECRET',      :sshkey  =>  '11260003****',                    #  Your  SSH  Key  id      :serverplan  =>  '2001',                            #  Server  Type      :volume  =>  {          :diskplan  =>  4,                                      #  Type  SSD          :sourcearchive  =>  '112500463685'    #  Ubuntu12.04      },      :boot  =>  true  }) メソッド一発で準備OKの傭兵化が完了

※個人の印象です

Page 32: さくらのクラウドフォーメーション with Chef [XEgg session]

使いやすいライブラリにしたら

• Ruby系のツールで組み込める

• Chef

• knife (plugin) ̶★

• test-kitchen

• Rake ̶★, Thor, etc… !

★のツールで今回使用

32

Page 33: さくらのクラウドフォーメーション with Chef [XEgg session]

knife sakura• Fogのさくらクラウド拡張を使用して作成

• Chefの対IaaSフローを実装

• Chef-Server登録その他もろもろ

33

$ knife sakura help !

** SAKURA COMMANDS ** sakura create (options)

https://github.com/higanworks/xegg2_chef

Page 34: さくらのクラウドフォーメーション with Chef [XEgg session]

4.MongoDB クラスタを

つくってみました

Page 35: さくらのクラウドフォーメーション with Chef [XEgg session]

デモと解説https://github.com/higanworks/xegg2_chef

Page 36: さくらのクラウドフォーメーション with Chef [XEgg session]

ここまでのTry&Error クーポン予算内でOK

Page 37: さくらのクラウドフォーメーション with Chef [XEgg session]

やりのこし• Fogの本家マージ(※ほぼOK、レビュー待ち)

・Switch等が未実装⇒ メンテ協力者求む

• Knifeプラグインの単体公開⇒ 今はリポジトリのおまけ

• MongoDBはShard自動構築までしたかった⇒ 締め切りに間に合わず

37

Page 38: さくらのクラウドフォーメーション with Chef [XEgg session]

さくらの クラウドフォーメーション

(仮)“Chef Meetup Kansai x さくらの○◯”

!XEgg 1st『クラウド未経験者向け

ITコミュニティ&クラウドベンダー合同勉強会』 !!

@sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15