Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

11,243 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. さくらの クラウドフォーメーション with Chef さくらのクラウド x Chef Meetup Kansai ! XEgg 1st『クラウド未経験者向け ITコミュニティ&クラウドベンダー合同勉強会』 ! ! @sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15
  2. 2. コミュニティChef Meetup Kansai • ChefやInfrastructure as Codeの話を • 参加者全員が少しづつ発表する • 主催者がよそのイベントでしゃべる • 不定期開催 2
  3. 3. HiganWorks, OpsRockについて • アプリケーションのためのプラットフォーム構 築/運用自動化をテーマに活動 • http://opsrock.in 共同開発・運営 • AWS OpsWorksとChef、インフラの テストを取り扱うソリューションを提供 3
  4. 4. アンケート挙手のお願い • セッション中、発表者から簡単な質問をする ことがあります。 • ご遠慮なさらず、恥ずかしがらずに挙手いた けると助かります。 ! • よろしくお願いいたします。 4
  5. 5. 内容 1.Chefをざっくり説明 2.さわってみました『さくらのクラウド』 ※コミュニティを代表する個人の感想です 3.Chefとインテグレーションしてみました 4.MongoDBクラスタをつくってみました ※Githubで公開、再現可能 5
  6. 6. 1.Chef
  7. 7. Chefについて • 米Chef社による構成管理フレームワーク • Chef-Server(Enterprise/OpenSource) • ノード(サーバ)情報の集約 • ポリシー配布のハブ • Chef-Client • ノード情報の収集 • レポーティング • ポリシーの適用(リソース収束) • 外部APIの操作 7
  8. 8. Infrastructure as Code • 手順書、テスト仕様、構成管理等々を • コードとして記述し、再現可能とする • オブジェクトで表し、抽象化する • その他いろいろ再利用可能なリソースに • あと冪等性 ! • ちなみに、物理の知識はあるだけ有効 • ラック契約、電源容量、回線手配、スイッチ類、 サーバ、etc.. 8
  9. 9. より詳しく • ここだけの話ですが(以下省略 9
  10. 10. Chef x クラウド(IaaS) • コンピュータリソースがAPI調達できる • ノード作成/登録+Role適用(サーバ設定) • Chef-ServerでノードをIDほか属性で管理 ! • または • コンパネからサーバ作ってログインしてホスト名 とかつけてChefをインストールして設定して Cookbookを用意してChefSoloを流して表計算 ソフトで管理してもいいとおもいます 10
  11. 11. 2.さわってみました 『さくらのクラウド』
  12. 12. サインアップのコツ • ありがとう田中社長 12
  13. 13. 印象1:さくらのクラウド • アカウント&ユーザのモデルがある • 権限割り当てや複数環境の区別によい • REST APIがあるのでプログラミングできそ う 13
  14. 14. 印象2:さくらのクラウド • 組み合わせられる要素が沢山 • ストレージ(ディスクボリューム) • サーバ※なんとディスクレスもOK • スイッチ&ネットワーク • ロードバランサ(DSR!) 14
  15. 15. とりえあずサーバを 動かすまでのAPIコール 1.ネットワーク確認 2.サーバ作成(NICをつける) 3.ディスク作成 •アーカイブ(テンプレート)から複製を待つ 4.ディスクを修正 •ログイン用にSSH公開 を書き込み 5.ディスクをサーバにアタッチ 6.ブート! 15
  16. 16. ※写真引用元: 比企さんのFacebookタイムライン 総合印象:プラモデルっぽい 16
  17. 17. (Chef meetup視点で) 海外と比較
  18. 18. 海外と比べてみる? • APIつきなクラウド(IaaSやVPN) 18
  19. 19. 海外なクラウドAPIの特徴 • シンプルなレスポンス • 自由度はあまりない (※AWSは除こう) • 高速なリソース確保 • 有り物を、使いたい時にすぐ用意したり廃棄 したり • サービスに即投入 19
  20. 20. ※写真引用元: 比企さんのFacebookタイムライン 総合印象:海外は完成品/傭兵 20
  21. 21. たとえばコンピュータリソース • DigitalOcean, Joyentあたりは10∼30秒で 操作開始OK • Infrastructure as Codeは、結構スクラップ &ビルドでテストしたい • 早いと嬉しい 21
  22. 22. プラモデル: ガンダムさん達が 大地に立つまで一手間かける 傭兵: ガンダムさん達 大地にもう立ってる vs. ホビー対傭兵な印象 22
  23. 23. 使いづらいのかね? さくら… からスタート • レスポンスが冗長 • APIの標準が日本語 • 結構503くれる
  24. 24. 3.Chefと インテグレーション してみました
  25. 25. Chef x クラウド(IaaS)のフロー 1.APIでコンピュータリソース作成 2.『戻り値』のIPアドレスを使用してSSHでつつ く、つつく 3.オンラインと同時にChef-Clientをインストー ル&Chef-Serverに登録 4.Environment(環境), Role(役割)の割り当て 5.レシピが要るならその時に適用 6.ここまでコマンド(knife)1回の実行で実施 25
  26. 26. fog.io(クラウド共通ライブラリ) 26
  27. 27. fogについて • 世界中で 良さ気 とされるパブリック/プラ イベートクラウドを操作する為のライブラリ • Compute、Storage、Network、DNSなど が対象 • 各種プロバイダに対応 日本のないんか!! 27
  28. 28. 作りました (※クーポンくれたし)
  29. 29. 本家マージを目指してプルリクエスト (親切な)コードレビューの応酬 ※ご覧のセッションは Chefがテーマです 29
  30. 30. https://github.com/higanworks/fog/blob/pull_sakuracloud2/lib/fog/sakuracloud/docs/ getting_started.md Getting Startedも作成 30
  31. 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の傭兵化が完了 31
  32. 32. 使いやすいライブラリにしたら • Ruby系のツールで組み込める • Chef • knife (plugin) ̶★ • test-kitchen • Rake ̶★, Thor, etc… ! ★のツールで今回使用 32
  33. 33. knife sakura • Fogのさくらクラウド拡張を使用して作成 • Chefの対IaaSフローを実装 • Chef-Server登録その他もろもろ $ knife sakura help ! ** SAKURA COMMANDS ** sakura create (options) https://github.com/higanworks/xegg2_chef 33
  34. 34. 4.MongoDB クラスタを つくってみました
  35. 35. デモと解説 https://github.com/higanworks/xegg2_chef
  36. 36. ここまでのTry&Error クーポン予算内でOK
  37. 37. やりのこし • Fogの本家マージ(※ほぼOK、レビュー待ち)
 ・Switch等が未実装
 メンテ協力者求む • Knifeプラグインの単体公開
 今はリポジトリのおまけ • MongoDBはShard自動構築までしたかった
 締め切りに間に合わず 37
  38. 38. さくらの クラウドフォーメーション (仮) Chef Meetup Kansai x さくらの○⃝ ! XEgg 1st『クラウド未経験者向け ITコミュニティ&クラウドベンダー合同勉強会』 ! ! @sawanoboly(HiganWorks LLC, Opsrock) 2014.02.15 終

×