Your SlideShare is downloading. ×
0
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編

1,641

Published on

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

No Downloads
Views
Total Views
1,641
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. クラスメソッド株式会社 都元ダイスケ CloudFormation #jawsdays #ace
  • 2. 自己紹介 • Webアプリ屋
 出身のAWS屋 • Classmethod所属 • AWS歴 2.5年 • @daisuke_m CloudFormation EC2S3 Glacier ElasticMapReduce AutoScaling ELB CloudFrontRDS DynamoDB ElastiCache RedShift IAM CloudWatch Beanstalk Data Pipeline OpsWorks CloudHSM CloudSearch SWF SQS SNS SES Transcoder Route53VPC DirectConnect StorageGateway Mechanical Turk CloudTrail AppStream Kinesis #jawsdays #ace
  • 3. works ✦ AWSインフラの コンサル・設計・構築 ✦ お客様向けアプリケーションの DevOps ✦ 人間CloudFormer ✦ 気づくと書いてるJSONが1000行越えてます #jawsdays #ace
  • 4. Agenda • CloudFromationの概要 • CloudFormation Helper Scripts • CFnで実現する Blue-Green Deployment #jawsdays #ace
  • 5. ‒ D-chan SSHしたら負けかなと思っている。 ※ あくまでも心意気の話ですが #jawsdays #ace
  • 6. CloudFormation #jawsdays #ace
  • 7. CloudFormation Template + Parameter Parameter Stack Bucket with Objects DynamoDB Table ELB Instances Auto Scaling Amazon CloudFront 基本的システム構成 S3, DynamoDB, EC2, IAM,AutoScaling, SecurityGroup, ELB, CloudFront Instance Type, クラスタの台数, SSH接続元IP, キー名, ...等
  • 8. Template #jawsdays #ace JSON、ということはインフラを バージョン管理できる\(^o^)/
  • 9. 育てるインフラ • インフラの構成をTemplateとしてバージョン管理する • TemplateからStackを作る(構築) • インフラ構成を追加・編集(そしてバージョン管理) • 既存Stackを新しいテンプレートで更新する(成長) #jawsdays #ace
  • 10. Resource 【S3のバケットを1つ作成する例】 "CacheBucket" がリソース名 "Type" に種類リソースの種類を指定して "Properties" で詳細設定する
  • 11. Parameter #jawsdays #ace
  • 12. Parameter Reference #jawsdays #ace
  • 13. Parameter Inputs #jawsdays #ace
  • 14. Mapping / Mapping Reference
  • 15. Output
  • 16. 突然ですがここでCFnの課題 ✦ テスタビリティ ✦ 一部作成に対応していないサービス有り(順次) ✦ 一部更新に対応していないサービス有り(順次…) ✦ 自動化コンポーネントを手動で触るとFAILEDス テータスとなり、詰む(御法度)
  • 17. CloudFormtaion Helper Scripts #jawsdays #ace
  • 18. user-data
  • 19. user-data
  • 20. user-data 自己組織化
  • 21. user-dataの問題点 ✦ 失敗検知ができない ✦ 複雑になると、カオス化する(手順の構造化) ✦ 設定の更新(再実行)ができない ✦ Immutable Infrastructureからは離れるが #jawsdays #ace
  • 22. WaitCondition(失敗検知)
  • 23. cfn-init(手順の構造化)
  • 24. Metadata AWS::CloudFormation::Init
  • 25. cfn-hup(更新ヘルパー)
  • 26. configSets • cfn-init起動時の -c で
 configSetを指定する ! • configSetは、実行するconfig のリストと順序を定義 ! • packages • sources • users • groups • files • commands • services それぞれの 設定の中で この順序で 実行される
  • 27. cfn-hupの設定
  • 28. CloudFormtaionで実現する Blue-Green Deployment #jawsdays #ace
  • 29. というテンプレート 書いてみた。
  • 30. パラメータ(主なもの) ✦ ProductionEnv ( blue or green ) ✦ BlueInstanceType / GreenInstanceType ✦ BlueFleetSize / GreenFleetSize ✦ BlueApplication / GreenApplication #jawsdays #ace
  • 31. アプリのtgz URL 更新されたらhttpd 再起動 PHP の中から $_SERVER[ RDS_… ] で参照
  • 32. デプロイ(開発時) • 現在Blueが本番だとすると、Greenが開発 • アプリケーションファイルをtar.gzに固める • S3にアップロードし、そのURLを確認 • GreenのURLを書き換えてStack update #jawsdays #ace
  • 33. スワップ(リリース時) • Blueが本番だとすると、Greenが開発 • Greenに次期バージョンをデプロイして動作確認 • OKだったらGreenを増強(インスタンスサイズ↗ 数量↗) • ProductionEnvをblueからgreenに書き換えてStack update • 切り替わったらBlueを縮退(インスタンスサイズ↘ 数量↘) • 以降、Greenが本番で、Blueが開発環境となる #jawsdays #ace
  • 34. gist bit.ly/cfn-bgd-php 1000行超えたJSONがここに #jawsdays #ace
  • 35. まとめ CloudFormationの5要素 Parameter Condition Mapping Resource Outputs CFn Helper Scripts cfn-signal (WaitCond.) cfn-init cfn-hup Blue-Green Deployment #jawsdays #ace

×