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

Post on 22-May-2015

8.979 views 4 download

description

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

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

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

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

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

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

@sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15

コミュニティChef Meetup Kansai

• ChefやInfrastructure as Codeの話を

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

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

• 不定期開催

2

HiganWorks, OpsRockについて

3

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

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

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

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

ことがあります。

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

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

4

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

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

5

1.Chef

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

• Chef-Server(Enterprise/OpenSource)

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

• ポリシー配布のハブ

• Chef-Client

• ノード情報の収集

• レポーティング

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

• 外部APIの操作

7

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

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

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

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

• あと冪等性 !

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

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

8

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

9

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

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

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

• または

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

10

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

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

12

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

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

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

13

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

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

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

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

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

14

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

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

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

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

15

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

16

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

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

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

18

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

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

• 高速なリソース確保

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

• サービスに即投入

19

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

20

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

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

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

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

• 早いと嬉しい

21

ホビー対傭兵な印象 22

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

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

vs.

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

からスタート

• レスポンスが冗長

• APIの標準が日本語

• 結構503くれる

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

してみました

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

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

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

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

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

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

25

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

26

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

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

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

• 各種プロバイダに対応

27

日本のないんか!!

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

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

29

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

Getting Startedも作成 30

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

サーバ作成サンプル

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の傭兵化が完了

※個人の印象です

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

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

• Chef

• knife (plugin) ̶★

• test-kitchen

• Rake ̶★, Thor, etc… !

★のツールで今回使用

32

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

• Chefの対IaaSフローを実装

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

33

$ knife sakura help !

** SAKURA COMMANDS ** sakura create (options)

https://github.com/higanworks/xegg2_chef

4.MongoDB クラスタを

つくってみました

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

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

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

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

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

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

37

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

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

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

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

@sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15