CloudFormationとSerfで作る全自動インフラ

5,885 views
5,777 views

Published on

2013/12/10 CM re:Growth Developers.IO Meetup #1

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,885
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
21
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

CloudFormationとSerfで作る全自動インフラ

  1. 1. CloudFormationとSerfで作る 全自動インフラ CM re:Growth Developers.IO Meetup 01 望月 政夫 2013/12/10 re:Growth @SAP classmethod.jp 1
  2. 2. 自己紹介 ・望月 政夫 ・1988年生まれ ・AWS歴 : 1年 ・クラスメソッド歴 : 2か月 ・初プレゼンです ・好きなサービス : aws-cli, aws.rb classmethod.jp 2 Twitter:@Canelmo
  3. 3. AWS CloudFormation 使っていますか? classmethod.jp 3
  4. 4. AWS CloudFormation 好きですか? classmethod.jp 4
  5. 5. AWS CloudFormation •AWSのリソースをJSONで定義 •外部パラメータ/結果Output •AWSがサンプルを用意 (http://aws.amazon.com/jp/cloudformation/aws-cloudformation-templates/) classmethod.jp 5
  6. 6. http://dev.classmethod.jp/cloud/aws/cloudformation-firstcontact/ classmethod.jp 6
  7. 7. http://dev.classmethod.jp/cloud/aws/aws-cfn-advent-calendar-2013-fullbok/ classmethod.jp 7
  8. 8. CloudFormationの素晴らしい点 • • • • • ボタンひとつで環境作成 リソース更新が容易 Stackの削除で全部消える 再利用可能 AWS::CloudFormation::Initで (だいたい)なんでもできる classmethod.jp 8
  9. 9. CloudFormationの素晴らしいくない点 • 長すぎるJSON(1000行以上) • AWS::CloudFormation::Initが デバッグしづらい • 最後のほうでロールバックすると(´・ω・`) classmethod.jp 9
  10. 10. CloudFormationの活用法 • 適度に分割すること – – – – – VPC&SecurityGroup EIP ELB RDS App • 機能/独立度で分割 classmethod.jp 10
  11. 11. Serf • オーケストレーションツール – URL : http://serfdom.io/ – Mitchell Hashimoto氏 作 • イベントに応じてカスタムスクリプトを実行 • 軽量 classmethod.jp 11
  12. 12. http://dev.classmethod.jp/cloud/aws/serf_on_ec2/ http://www.slideshare.net/zembutsu/serf-the-liberator classmethod.jp 12
  13. 13. http://dev.classmethod.jp/cloud/aws/serf_on_ec2/ classmethod.jp 13
  14. 14. Serfの特徴 • クラスタリング : 特定の親を持たない • イベントハンドリング – – – – member-join : ノードに誰か参加した member-failed : ノードの誰かが不達になった member-leave : ノードの誰かが離脱した user : ユーザ定義の任意イベント $ serf event ~~ classmethod.jp 14
  15. 15. Serf in AWS • どう使う? – Appサーバへのアプリケーションデプロイ – 監視サーバへの自動追加 – 死活監視 AWSらしい使い方・・・? classmethod.jp 15
  16. 16. Cloud Design Pattern classmethod.jp 16
  17. 17. Cloud Design Pattern • High Availability NAT •NATインスタンスの冗長化 •ミッションクリティカルな サービスでは必須 http://aws.clouddesignpattern.org/index.php/CDP:High_Av ailability_NAT%E3%83%91%E3%82%BF%E3%83%BC% E3%83%B3 classmethod.jp 17
  18. 18. NAT1 NAT2 Instance Instance VPC Subnet VPC Subnet Route Table Instance VPC Subnet VPC Subnet classmethod.jp 18
  19. 19. Serfで連携 NAT1 NAT2 Instance Instance VPC Subnet VPC Subnet Route Table Instance VPC Subnet VPC Subnet classmethod.jp 19
  20. 20. 1: インスタンス不調 Serfで連携 NAT1 NAT2 Instance Instance VPC Subnet VPC Subnet Route Table Instance VPC Subnet VPC Subnet classmethod.jp 20
  21. 21. 1: インスタンス不調 Serfで連携 NAT1 Instance NAT2 2: member-failed VPC Subnet Instance VPC Subnet Route Table Instance VPC Subnet VPC Subnet classmethod.jp 21
  22. 22. 1: インスタンス不調 Serfで連携 NAT1 Instance NAT2 2: member-failed VPC Subnet Instance VPC Subnet 3: RouteTable書き換え Route Table Instance VPC Subnet VPC Subnet classmethod.jp 22
  23. 23. 再起動後、自動でJoin NAT1 NAT2 Instance Instance VPC Subnet VPC Subnet Route Table Instance VPC Subnet VPC Subnet classmethod.jp 23
  24. 24. Demo classmethod.jp 24
  25. 25. まとめ • CloudFormationが管理するもの • インフラとしてのAWS • アプリケーションが動く環境を作る • Serfが管理するもの – 稼働中のさまざまな変更 – サーバが増減する環境に特に有効 • レイヤ毎に適切なツールを選択する classmethod.jp 25
  26. 26. classmethod.jp 26

×