さくらのクラウドフォーメーション with Chef [XEgg session]
-
Upload
yukihiko-sawanobori -
Category
Technology
-
view
8.979 -
download
4
description
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
終