狠狠撸

狠狠撸Share a Scribd company logo
さくらの
クラウドフォーメーション
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について

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

? http://opsrock.in 共同開発?運営
? AWS OpsWorksとChef、インフラの

テストを取り扱うソリューションを提供

3
アンケート挙手のお願い
? セッション中、発表者から簡単な質問をする
ことがあります。

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

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

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
※写真引用元: 比企さんのFacebookタイムライン

総合印象:プラモデルっぽい
16
(Chef meetup視点で)
海外と比較
海外と比べてみる?
? APIつきなクラウド(IaaSやVPN)

18
海外なクラウドAPIの特徴
? シンプルなレスポンス
? 自由度はあまりない (※AWSは除こう)
? 高速なリソース確保
? 有り物を、使いたい時にすぐ用意したり廃棄
したり

? サービスに即投入

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

総合印象:海外は完成品/傭兵
20
たとえばコンピュータリソース

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

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

? 早いと嬉しい

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

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

vs.

ホビー対傭兵な印象
22
使いづらいのかね?
さくら…
からスタート
? レスポンスが冗長
? 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
作りました
(※クーポンくれたし)
本家マージを目指してプルリクエスト
(親切な)コードレビューの応酬
※ご覧のセッションは
Chefがテーマです

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

Getting Startedも作成
30
サーバ作成サンプル
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の傭兵化が完了
31
使いやすいライブラリにしたら

? Ruby系のツールで組み込める
? Chef
? knife (plugin) ?★
? test-kitchen
? Rake ?★, Thor, etc…
!

★のツールで今回使用

32
knife sakura
? Fogのさくらクラウド拡張を使用して作成
? Chefの対IaaSフローを実装
? Chef-Server登録その他もろもろ
$ knife sakura help
!

** SAKURA COMMANDS **
sakura create (options)
https://github.com/higanworks/xegg2_chef

33
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

終

More Related Content

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