気が狂わないサーバ増設x10

1,583 views

Published on

Asian Automation Alience(http://kokucheese.com/event/index/160374/)にて発表した資料です。

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,583
On SlideShare
0
From Embeds
0
Number of Embeds
455
Actions
Shares
0
Downloads
7
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

気が狂わないサーバ増設x10

  1. 1. Asian Automation Alliance 気が狂わないサーバ 増設x10 kuchitama AsianAutomationAlliance 2014/6/28
  2. 2. Asian Automation Alliance Kuchitama • くちたま • FuRyu株式会社 • FuRyuTechBlog編集長 • 先週結婚式を挙げました
  3. 3. Kuchitama
  4. 4. Asian Automation Alliance Case.1
  5. 5. Kuchitama and more …
  6. 6. 新規サーバ構築 同じ構成で!
  7. 7. Asian Automation Alliance 作った人にお願い 前回と同じ構成で構築してもらえますか? その人辞めちゃった インフラチーム
  8. 8. Asian Automation Alliance 作った人にお願い 前回と同じ構成で構築してもらえますか? その人辞めちゃった インフラチーム 構築者=退職者
  9. 9. 既存サーバを参考に ]# find / … ]# grep … ]# printenv
  10. 10. EC2スケールアウト _人人人人人人人人人_ > /etc/profile.d <  ̄Y^Y^Y^Y^Y^Y^ ̄
  11. 11. Asian Automation Alliance Case.2
  12. 12. ある日の出来事
  13. 13. Nginx/Play •http://tech.furyu.jp/blog/?p=2069
  14. 14. AWS •Scale up •EC2/RDS インスタンスタイプ変更 •サーバのスペックアップ •Scale out •EC2インスタンス追加
  15. 15. EC2スケールアウト スケールアウト
  16. 16. EC2スケールアウト スケールアウト
  17. 17. EC2スケールアウト スケールアウト AMI作って
  18. 18. EC2スケールアウト スケールアウト AMI作って 作成
  19. 19. EC2スケールアウト スケールアウト AMI作って 作成 手動で
  20. 20. EC2スケールアウト _人人人人_ > 手動 <  ̄Y^Y^Y ̄
  21. 21. 手順1 元になるAMIを選択
  22. 22. 手順1 元になるAMIを選択 多いわ!
  23. 23. 手順2 作成したEC2インスタンスに接続
  24. 24. 手順2 作成したEC2インスタンスに接続 どれやねん!
  25. 25. 手順3から ]# ntpd stop ]# hostname hoge ]# vi /etc/hosts ]# network restart ]# ... ]# ... ]# ...
  26. 26. 手順3から ]# ntpd stop ]# hostname hoge ]# vi /etc/hosts ]# network restart ]# ... ]# ... ]# ... ・・・
  27. 27. 手順1∼3 ]# ntpd stop ]# hostname hoge ]# vi /etc/hosts ]# network restart ]# ... ]# ... ]# ...
  28. 28. 手順1∼3 ]# ntpd stop ]# hostname hoge ]# vi /etc/hosts ]# network restart ]# ... ]# ... ]# ... これをx10
  29. 29. 結果
  30. 30. Asian Automation Alliance ここから得られた課題 •見える化/読める化 •暗黙知を作らない •自動化 •ルーチンを一撃で
  31. 31. Asian Automation Alliance そこで Provisioning
  32. 32. Asian Automation Alliance Provisioning Framework
  33. 33. Asian Automation Alliance Provisioning Framework インフラ運用のコード化 Infrastructure as a code
  34. 34. Asian Automation Alliance Provisioning Framework インフラ運用のコード化 Infrastructure as a code 決められた状態に収束 何度繰り返しても同じ結果になる べき等性
  35. 35. Asian Automation Alliance 見える化/読める化 https://gist.github.com/Kuchitama/5547882
  36. 36. Asian Automation Alliance 自動化 •Chef-Serverは構築がめんどうそう •あまり構築済みのサーバをへんこうす ることはない
  37. 37. Asian Automation Alliance Provisioning •Ruby製 •Puppet(Pull/Push) •Chef(Pull) •Python製 •Ansible(Push)
  38. 38. Asian Automation Alliance Chef • Chef is an automation platform that transforms infrastructure into code. Stop thinking in terms of physical and virtual servers. With Chef, your real asset is the code that brings those servers and the services they provide to life. An automated infrastructure can accelerate your time to market, help you manage scale and complexity, and safeguard your systems. • http://www.opscode.com/chef/
  39. 39. Asian Automation Alliance Chef • OpsCode製PF • Facebookで採用 • 単一サーバで動作するChef-Solo • サーバ-クライアント構成 • ChefServer-ChefClient
  40. 40. Asian Automation Alliance Chef • ドキュメントが充実 • 入門Chefsolo オススメ • Cookbookも充実
  41. 41. Asian Automation Alliance knife • ChefのCLI • Chefと一緒にインストールされ る • Pluggable
  42. 42. Asian Automation Alliance 見える化/読める化 https://gist.github.com/Kuchitama/5547882
  43. 43. Asian Automation Alliance 自動化 •サーバの自動構築 •複数台のサーバに対応
  44. 44. Asian Automation Alliance knife-solo • knifeのプラグイン • knife-solo adds a handful of commands that aim to make working with chef-solo as powerful as chef-server. • chef-soloをchef-serverみたいに便利にしてく れるCLIツール • ver.0.3.0以降がオススメ
  45. 45. Asian Automation Alliance knife-solo • knife solo prepare {host} • chef-soloのリモートインストール • knife solo cook {host} • cookbookのリモート実行
  46. 46. Asian Automation Alliance knife-solo • knife solo prepare {host} • chef-soloのリモートインストール • echo host1 host2 host3 | xargs -n 1 knife solo prepare • knife solo cook {host} • cookbookのリモート実行 • echo host1 host2 host3 | xargs -n 1 knife solo prepare
  47. 47. Asian Automation Alliance 更に自動化
  48. 48. Asian Automation Alliance さらに自動化 •AWSの操作 •Ruby-SDK •サーバの操作 •Chef
  49. 49. Asian Automation Alliance 作った
  50. 50. Asian Automation Alliance 自動でやりたいこと •AMIからEC2を起動 •EC2でChefレシピを実行 •EC2をAMIとして保存
  51. 51. Asian Automation Alliance 更に自動化 •実行も自動化したい •タイミングはrecipeとかを更新したと きがいい → Git push時
  52. 52. Asian Automation Alliance web api
  53. 53. Asian Automation Alliance web api Push POST
  54. 54. Asian Automation Alliance 公開しました •Kuchitama/ec2_automation •https://github.com/Kuchitama/ ec2_automation
  55. 55. Asian Automation Alliance 更に更に自動化
  56. 56. Asian Automation Alliance 更に更に自動化
  57. 57. Asian Automation Alliance 処理の流れ •ec2_automationと同じことをやる •packerを使うことで… •色々なマシンイメージに対応 •色々なPFに対応(Chef以外もOK)
  58. 58. Asian Automation Alliance 公開しました •Kuchitama/packer-remote •https://github.com/Kuchitama/ packer-remote/
  59. 59. Asian Automation Alliance 実際のチームの現状
  60. 60. Asian Automation Alliance Chef未導入
  61. 61. Asian Automation Alliance 自動化コスト •暗黙知は手順書化 •初期のサーバ構築自体は機会が少ない •ルーチンはスクリプトで •毎日本番環境をAMI化 •サーバ増設時はAMIからインスタンス起動 •アプリのデプロイは元々別で自動化済 •コマンド一つで任意台数作成可能
  62. 62. Asian Automation Alliance 自動化コスト •学習コストバランス •自動化したら誰でもできる? •動かすだけならね •自動化 無知化
  63. 63. Asian Automation Alliance 弊社現状 •今のところ問題は起こってない •シェルスクリプトとAMIを使った環境 構築 •そんなことやってる間にAnsibleが
  64. 64. Asian Automation Alliance Chef-Ansible
  65. 65. Asian Automation Alliance Chef - Ansible http://tech.furyu.jp
  66. 66. Asian Automation Alliance 比較 • CookBookが充実 • ググらビリティ低い • Chef = 料理人 • Opscode -> Chef • Pull型(knife-soloで pushも可能) • Rubyの内部DSLで記述 • 日本語で本出てる • yamlで記述 • モジュールを好きな言 語で作成できる • Push型 • 公式Playbookリポジト リがない(準備中?)
  67. 67. Asian Automation Alliance Chef •公式リポジトリの充実(コミットは面倒 だけど) • http://community.opscode.com/cookbooks •Recipeの依存解決ツールがある (Berkshelf) •Ruby内部DSLで書ける(書き方、環境 の統一がしやすい) •プロキシに弱い
  68. 68. Asian Automation Alliance Ansible •好きな言語でモジュールを書ける(組織 の特色が強くなる?) •公式リポジトリみたいなのはない •プロキシの設定がしやすい •比較的環境構築が楽 •弊社でも採用
  69. 69. Asian Automation Alliance まとめ
  70. 70. Asian Automation Alliance まとめ •Chefによるプロビジョニングで • 暗黙知 -> 形式知 • ルーチン -> 自動化 •自動化の要件 • 手段/ツールが目的化しないように • ヒト/モノ/金/時間 のトレードオフ

×