Submit Search
Upload
Cloud Formation Best Practice
•
0 likes
•
56 views
Y
yutamuramot
Follow
AWS CloudFormation Best Practice
Read less
Read more
Software
Report
Share
Report
Share
1 of 111
Download now
Download to read offline
Recommended
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイ
Amazon Web Services Japan
ビッグデータサービス群のおさらい & AWS Data Pipeline
ビッグデータサービス群のおさらい & AWS Data Pipeline
Amazon Web Services Japan
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
Shota Umeda
WebサービスStartUP向け AWSスケーラブルな構成例
WebサービスStartUP向け AWSスケーラブルな構成例
Amazon Web Services Japan
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
Amazon Web Services Japan
Awsのインフラをデザインパターン駆使して設計構築
Awsのインフラをデザインパターン駆使して設計構築
Monstar Lab Inc.
[AWSマイスターシリーズ] Amazon Elastic Compute Cloud (EC2)
[AWSマイスターシリーズ] Amazon Elastic Compute Cloud (EC2)
Amazon Web Services Japan
Recommended
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイ
Amazon Web Services Japan
ビッグデータサービス群のおさらい & AWS Data Pipeline
ビッグデータサービス群のおさらい & AWS Data Pipeline
Amazon Web Services Japan
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
Shota Umeda
WebサービスStartUP向け AWSスケーラブルな構成例
WebサービスStartUP向け AWSスケーラブルな構成例
Amazon Web Services Japan
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
Amazon Web Services Japan
Awsのインフラをデザインパターン駆使して設計構築
Awsのインフラをデザインパターン駆使して設計構築
Monstar Lab Inc.
[AWSマイスターシリーズ] Amazon Elastic Compute Cloud (EC2)
[AWSマイスターシリーズ] Amazon Elastic Compute Cloud (EC2)
Amazon Web Services Japan
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
Amazon Web Services Japan
Slerとaws運用の付き合い方
Slerとaws運用の付き合い方
Sato Shun
[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks
Amazon Web Services Japan
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
Amazon Web Services Japan
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
AWS活用のいままでとこれから -東急ハンズの事例-
AWS活用のいままでとこれから -東急ハンズの事例-
Taiji INOUE
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
クラスメソッド株式会社
はじめてのAWS - ビギナー編 -
はじめてのAWS - ビギナー編 -
SORACOM, INC
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
Amazon Web Services Japan
エンタープライズにおけるAWS利用事例_2012年11月
エンタープライズにおけるAWS利用事例_2012年11月
Amazon Web Services Japan
基礎からのEBS
基礎からのEBS
宗 大栗
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
Amazon Web Services Japan
AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 -
SORACOM, INC
Elastic beanstalk docker_support
Elastic beanstalk docker_support
Amazon Web Services Japan
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
Amazon Web Services Japan
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
Amazon Web Services Japan
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
Amazon Web Services Japan
AWSクラウドでのCDN活用-動画配信編-
AWSクラウドでのCDN活用-動画配信編-
Amazon Web Services Japan
SAP on AWS 実際の導入例と導入効果
SAP on AWS 実際の導入例と導入効果
Amazon Web Services Japan
JAWS DAYS 2015
JAWS DAYS 2015
陽平 山口
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
More Related Content
What's hot
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
Amazon Web Services Japan
Slerとaws運用の付き合い方
Slerとaws運用の付き合い方
Sato Shun
[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks
Amazon Web Services Japan
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
Amazon Web Services Japan
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
AWS活用のいままでとこれから -東急ハンズの事例-
AWS活用のいままでとこれから -東急ハンズの事例-
Taiji INOUE
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
クラスメソッド株式会社
はじめてのAWS - ビギナー編 -
はじめてのAWS - ビギナー編 -
SORACOM, INC
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
Amazon Web Services Japan
エンタープライズにおけるAWS利用事例_2012年11月
エンタープライズにおけるAWS利用事例_2012年11月
Amazon Web Services Japan
基礎からのEBS
基礎からのEBS
宗 大栗
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
Amazon Web Services Japan
AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 -
SORACOM, INC
Elastic beanstalk docker_support
Elastic beanstalk docker_support
Amazon Web Services Japan
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
Amazon Web Services Japan
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
Amazon Web Services Japan
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
Amazon Web Services Japan
AWSクラウドでのCDN活用-動画配信編-
AWSクラウドでのCDN活用-動画配信編-
Amazon Web Services Japan
SAP on AWS 実際の導入例と導入効果
SAP on AWS 実際の導入例と導入効果
Amazon Web Services Japan
What's hot
(20)
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
[AWSマイスターシリーズ] Amazon Elastic MapReduce (EMR)
Slerとaws運用の付き合い方
Slerとaws運用の付き合い方
[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
AWS活用のいままでとこれから -東急ハンズの事例-
AWS活用のいままでとこれから -東急ハンズの事例-
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
はじめてのAWS - ビギナー編 -
はじめてのAWS - ビギナー編 -
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
エンタープライズにおけるAWS利用事例_2012年11月
エンタープライズにおけるAWS利用事例_2012年11月
基礎からのEBS
基礎からのEBS
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 -
Elastic beanstalk docker_support
Elastic beanstalk docker_support
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ] Instance Store & Elastic Block Store
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
[AWSマイスターシリーズ]Amazon Relational Database Service (RDS)
AWSクラウドでのCDN活用-動画配信編-
AWSクラウドでのCDN活用-動画配信編-
SAP on AWS 実際の導入例と導入効果
SAP on AWS 実際の導入例と導入効果
Similar to Cloud Formation Best Practice
JAWS DAYS 2015
JAWS DAYS 2015
陽平 山口
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
New Cloud Design Pattern using Amazon Aurora
New Cloud Design Pattern using Amazon Aurora
宗 大栗
コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法
Aya Komuro
Aws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overview
Yoshii Ryo
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
Noritaka Sekiyama
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Daisuke Ikeda
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
SORACOM, INC
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
TakeshiFukae
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
Amazon Web Services Japan
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
伊藤 祐策
デジタルハリウッド ☓ cloudpack AWS講座
デジタルハリウッド ☓ cloudpack AWS講座
iret, Inc.
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
Amazon Web Services Japan
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
yamamotomsc
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
日本マイクロソフト株式会社
成長していくサービスとAWS
成長していくサービスとAWS
Mitsuharu Hamba
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
Amazon Web Services Japan
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
Shuji Kikuchi
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
株式会社スカイアーチネットワークス
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Tetsunori Nishizawa
Similar to Cloud Formation Best Practice
(20)
JAWS DAYS 2015
JAWS DAYS 2015
DevOps with Database on AWS
DevOps with Database on AWS
New Cloud Design Pattern using Amazon Aurora
New Cloud Design Pattern using Amazon Aurora
コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法
Aws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overview
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
デジタルハリウッド ☓ cloudpack AWS講座
デジタルハリウッド ☓ cloudpack AWS講座
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
成長していくサービスとAWS
成長していくサービスとAWS
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Cloud Formation Best Practice
1.
実践! CloudFormation Best Practice ~CloudFormationで始める組織改革~ レバレジーズ株式会社
村本 雄太 2019/02/23
2.
目次 1. 自己紹介 &
会社紹介 2. 問題点 3. 実践!ベストプラクティス 4. まとめ
3.
目次 1. 自己紹介 &
会社紹介 2. 問題点 3. 実践!ベストプラクティス 4. まとめ
4.
● 村本 雄太 ●
レバレジーズ株式会社 ᄂ SREチーム リーダー ● @urmot2 好きなAWSサービスはCloudFormationです
5.
6.
働きがいのある会社 ベストカンパニーに選出
7.
働きがいのある会社 女性ランキング4位
8.
目次 1. 自己紹介 &
会社紹介 2. 問題点 3. 実践!ベストプラクティス 4. まとめ
9.
Templateがモノリシックで管理がつらい... 1. 全リソースを1Stackで集中管理 2. 数千行を超えるTemplate 3.
Parametersによる複雑な制御 厳選!モノリシックTemplateのつらみ3選
10.
1. 全リソースを1Stackで集中管理 2. 数千行を超えるTemplate 3.
Parametersによる複雑な制御 Templateがモノリシックで管理がつらい... 厳選!モノリシックTemplateのつらみ3選
11.
複数サービスのリソースが混在 ServiceA ELB ServiceB ELB ServiceA EC2 ServiceB EC2 ServiceA S3 ServiceB EC2 ServiceC EC2 ServiceA EC2 VPCPrivateA Subnet PublicC Subnet
12.
あらゆるリソースが依存関係を持っていた ServiceA ELB ServiceB ELB ServiceA EC2 ServiceB EC2 ServiceA S3 ServiceB EC2 ServiceC EC2 ServiceA EC2 VPCPrivateA Subnet PublicC Subnet
13.
変更時の影響が把握しづらい ServiceA ELB ServiceB ELB ServiceA EC2 ServiceB EC2 ServiceA S3 ServiceB EC2 ServiceC EC2 ServiceA EC2 VPCPrivateA Subnet PublicC Subnet 変更したら どうなるんだ...
14.
毎回恐る恐る更新 ServiceA ELB ServiceB ELB ServiceA EC2 ServiceB EC2 ServiceA S3 ServiceB EC2 ServiceC EC2 ServiceA EC2 VPCPrivateA Subnet PublicC Subnet 変更したら どうなるんだ... 更新ボタンを 押したくない...
15.
もうやだ... ServiceA ELB ServiceB ELB ServiceA EC2 ServiceB EC2 ServiceA S3 ServiceB EC2 ServiceC EC2 ServiceA EC2 VPCPrivateA Subnet PublicC Subnet 変更したら どうなるんだ... 更新ボタンを 押したくない...
16.
モノリシックなTemplateは管理がつらい... 1. 全リソースを1Stackで集中管理 2. 数千行を超えるTemplate 3.
Parametersによる複雑な制御 厳選!Template管理のつらみ3選
17.
最終的に3000行のTemplateに 1 --- 2 AWSTemplateFormatVersion:
'2010-09-09' 3 Description: 'My CloudFormation' 4 2459 ServiceCSqs: 2560 Type: AWS::CloudFormation::Stack 2561 Properties: 2562 Parameters:
18.
1 --- 2 AWSTemplateFormatVersion:
'2010-09-09' 3 Description: 'My CloudFormation' 4 2459 ServiceCSqs: 2560 Type: AWS::CloudFormation::Stack 2561 Properties: 2562 Parameters: どこを変更すれば良いかわからない どこを変更すれば 良いの...?
19.
1 --- 2 AWSTemplateFormatVersion:
'2010-09-09' 3 Description: 'My CloudFormation' 4 2459 ServiceCSqs: 2560 Type: AWS::CloudFormation::Stack 2561 Properties: 2562 Parameters: インフラ担当に依頼するしかない インフラ担当が 全部管理 どこを変更すれば 良いの...?
20.
1 --- 2 AWSTemplateFormatVersion:
'2010-09-09' 3 Description: 'My CloudFormation' 4 2459 ServiceCSqs: 2560 Type: AWS::CloudFormation::Stack 2561 Properties: 2562 Parameters: インフラ担当に負荷が集中 インフラ担当が ボトルネックに... どこを変更すれば 良いの...?
21.
1 --- 2 AWSTemplateFormatVersion:
'2010-09-09' 3 Description: 'My CloudFormation' 4 2459 ServiceCSqs: 2560 Type: AWS::CloudFormation::Stack 2561 Properties: 2562 Parameters: 申し訳ない... インフラ担当が ボトルネックに... どこを変更すれば 良いの...?
22.
1. 全リソースを1Stackで集中管理 2. 数千行を超えるTemplate 3.
Parametersを使った複雑な制御 モノリシックなTemplateは管理がつらい... 厳選!Template管理のつらみ3選
23.
複数環境に対応しようとしていた 43 --- 44 Parameters: 45
EnvType: 46 Type: String 151 Conditions: 152 IsProd: !Equals [!Ref EnvType, Prod] 153 IsStag: !Equals [!Ref EnvType, Stag] 154
24.
43 --- 44 Parameters: 45
EnvType: 46 Type: String 151 Conditions: 152 IsProd: !Equals [!Ref EnvType, Prod] 153 IsStag: !Equals [!Ref EnvType, Stag] 154 環境の差分を把握するのが困難 これを変えると どうなるの?
25.
43 --- 44 Parameters: 45
EnvType: 46 Type: String 151 Conditions: 152 IsProd: !Equals [!Ref EnvType, Prod] 153 IsStag: !Equals [!Ref EnvType, Stag] 154 環境ごとの違いを吸収しなければならない 記述が複雑に...
26.
43 --- 44 Parameters: 45
EnvType: 46 Type: String 151 Conditions: 152 IsProd: !Equals [!Ref EnvType, Prod] 153 IsStag: !Equals [!Ref EnvType, Stag] 154 何も考えたくない...
27.
つらい...
28.
なんとかしなければ...
29.
そうだ!
30.
AWSのベストプラクティス を実践しよう!
31.
● 設計時の推奨事項 ● テンプレート作成時の推奨事項 ●
運用時の推奨事項 AWSさんがベストプラクティスを提供してくださっている
32.
● 設計時の推奨事項 ● テンプレート作成時の推奨事項 ●
運用時の推奨事項 今回は設計に着目
33.
目次 1. 自己紹介 &
会社紹介 2. 問題点 3. 実践!ベストプラクティス 4. まとめ
34.
時間がないので3つだけ 1. ライフサイクルと所有権でStackを整理 2. 他Stackの値を安全に利用する 3.
共通パターンを再利用
35.
1. ライフサイクルと所有権でStackを整理 2. 他Stackの値を安全に利用する 3.
共通パターンを再利用 時間がないので3つだけ
36.
Stackを分割する基準についての項目 ライフサイクルと所有権に着目!
37.
ライフサイクルとは
38.
AWSリソースのライフサイクルのこと ● ライフサイクルが異なるリソースを分ける ● Template更新による影響をシャットアウト
39.
例: 期間限定のキャンペーン用サーバを作る場合 WebSite ELB WebSite EC2 RDS S3 WebSite
Stack
40.
1. WebSite Stackにキャンペーン用リソースを追加 WebSite ELB WebSite EC2 RDS
S3 WebSite Stack Campaign ELB Campaign EC2
41.
2. キャンペーン終了後はキャンペーン用リソースを削除 WebSite ELB WebSite EC2 RDS S3 WebSite
Stack Campaign ELB Campaign EC2 使ったリソースを 削除したい
42.
3. キャンペーン用リソースをピックアップ WebSite ELB WebSite EC2 RDS S3 WebSite
Stack Campaign ELB Campaign EC2 使ったリソースを ピックアップ
43.
4. リソース削除による影響範囲を調査 WebSite ELB WebSite EC2 RDS S3 WebSite
Stack Campaign ELB Campaign EC2 このリソースの 影響範囲は...
44.
5. WebSiteにも影響を与えそうなりソースを発見 WebSite ELB WebSite EC2 RDS S3 WebSite
Stack Campaign ELB Campaign EC2 WebSiteでも S3使ってる... このリソースの 影響範囲は...
45.
既存のリソースに影響を与えるところだった...
46.
解決策: WebSiteとCampaignでStackを分割する ELB EC2 RDS
S3 WebSite Stack ELB EC2 S3 Campaign Stack
47.
1. キャンペーン用のStackを作成 ELB EC2 RDS
S3 WebSite Stack ELB EC2 S3 Campaign Stack
48.
2. キャンペーン用リソースを削除する ELB EC2 RDS
S3 WebSite Stack ELB EC2 S3 Campaign Stack
49.
3. Campaign Stackを削除するだけ ELB
EC2 RDS S3 WebSite Stack ELB EC2 S3 Campaign Stack
50.
削除による影響をシャットアウト ELB EC2 RDS S3 WebSite
Stack ELB EC2 S3 Campaign Stack 無傷
51.
所有権
52.
所有権が異なるリソースを分割管理 ● 変更の意思決定にかかるコストを減らせる ● Templateの柔軟な変更が可能となる リソースを誰が管理すべきかを考える
53.
例: DBチームとWebチームで運用されているサービス ELB EC2 RDS Security Group Parameter Group Security Group Service
Stack
54.
ELBの SecurityGroupを 変更したい 1. DBチームとWebチームが同時に変更要望を出す ELB EC2 RDS Security Group Parameter Group Security Group Service
Stack Webチーム RDSの SecurityGroupを 変更したい DBチーム
55.
2. 更新タイミングの調整, 影響範囲の確認が必要になる ELB
EC2 RDS Security Group Parameter Group Security Group Service Stack 影響範囲の調査 更新タイミング の調整
56.
変更コストが高いなぁ...
57.
解決策: WebチームとDBチームでStackを分割する ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB
Stack
58.
ELBの SecurityGroup を変更したい 1. DBチームとWebチームが同時に変更要望を出す ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB
Stack Webチーム RDSの SecurityGroup を変更したい DBチーム
59.
2. 各チームのタイミングで変更してリリース ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB
Stack 今日変更して 今日リリース!! Webチーム 今日変更して 明日リリース!! DBチーム
60.
更新タイミングの調整が不要 ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB Stack 更新タイミング の調整は不要
61.
影響範囲も確認しやすい ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB Stack 更新タイミング の調整は不要 Stack内の 影響範囲を 確認すればOK
62.
ハッピー ELB EC2 Security Group Web Stack RDS Security Group Parameter Group DB Stack 更新タイミング の調整は不要 Stack内の 影響範囲を 確認すればOK
63.
1. ライフサイクルと所有権でStackを整理 2. 他のStackの値を安全に利用する 3.
共通パターンを再利用 時間がないので3つだけ
64.
他のStackの値を安全に利用したい ● Templateにハードコード ● Parametersで他Stackの値を渡す ●
クロススタック参照 他のStackの値の参照方法はいくつかある
65.
他のStackの値を安全に利用する ● Templateにハードコード ● Parametersで他Stackの値を渡す ●
クロススタック参照 他のStackの値の参照方法はいくつかある
66.
例: MyVpcのVPC IDをMyAppで利用する MyVpc ELB MyApp Subnet EC2 MyApp VPC
67.
# MyVpc.yaml Outputs: VpcId: Value: !Ref
Vpc Export: Name: MyVpc-Id 1. MyVpcでVPC IDをExport
68.
# MyVpc.yaml Outputs: VpcId: Value: !Ref
Vpc Export: Name: MyVpc-Id 1. MyVpcでVPC IDをExport リージョン内で一意である 必要がある
69.
# MyApp.yaml Resources: MyAppSubnet: Type: AWS::EC2::Subnet Properties: VpcId:
!ImportValue MyVpc-Id 2. MyAppでMyVpcの値をImport !ImportValueで MyVpc-Idを指定
70.
# MyVpc.yaml Outputs: VpcId: Value: !GetAtt
Vpc.CidrBlock Export: Name: MyVpc-Id VPC IDから CIDR Blockに変更 3. Exportの値を変更してみる
71.
# MyVpc.yaml Outputs: VpcId: Value: !GetAtt
Vpc.CidrBlock Export: Name: MyVpc-Id VPC IDから CIDR Blockに変更 4. 変更をMyVpc Stackに適応
72.
# MyVpc.yaml Outputs: VpcId: Value: !GetAtt
Vpc.CidrBlock Export: Name: MyVpc-Id 5. エラーが発生し変更がロールバック 参照されているExportの 値は変更できない
73.
6. 参照されているExportは変更できない # MyApp.yaml Resources: PrivateASubnet: Type:
AWS::EC2::Subnet Properties: VpcId: !ImportValue MyVpc-Id 勝手に変更されない為 安全に利用可能
74.
やったー! # MyApp.yaml Resources: PrivateASubnet: Type: AWS::EC2::Subnet Properties: VpcId:
!ImportValue MyVpc-Id 勝手に変更されない為 安全に利用可能
75.
1. ライフサイクルと所有権でStackを整理 2. 他Stackの値を安全に利用する 3.
共通パターンを再利用 時間がないので3つだけ
76.
● 共通パターンの保守が容易に ● 専用Templateの保守を分担 共通パターン
= よく使う設定パターン 共通パターンを専用Templateに集約
77.
例: 社内IPを許可するSecurityGroupにIPを追加する ELB EC2 Security Group ServiceA Stack ELB Security Group EC2 ServiceB
Stack
78.
1. 新しい支店のIPを追加する ELB EC2 Security Group ServiceA Stack ELB Security Group EC2 ServiceB
Stack
79.
2. 各Stackの管理者にIP追加を依頼 ELB EC2 Security Group ServiceA Stack ELB Security Group EC2 ServiceB
Stack 支店のIPを SecurityGroup に追加してー
80.
3. Stackの管理者はIPを確認しSecurityGroupに追加 ELB EC2 Security Group ServiceA Stack ELB Security Group EC2 ServiceB
Stack ServiceAに 支店のIPを追加 ServiceBに 支店のIPを追加
81.
SecurityGroupが二重管理 ELB EC2 Security Group ServiceA Stack ELB Security Group EC2 ServiceB Stack 同じ設定を 2箇所で管理 2つだけなら まだいいけど...
82.
管理がつらそう
83.
解決策: 社内IPを許可する専門Templateを作成 CompanySG.yaml
84.
1. 社内IPを許可する専用Templateを作成 CompanySG.yaml 社内IPを許可する SecurityGroupを 追加 Company SG
85.
2. 専用テンプレートをS3にアップロード CompanySG.yaml Company SG
86.
3. 各Stackにネストされたスタックとして作成 ELB EC2 Company SG ServiceA Stack ELB Company SG EC2 ServiceB
Stack Company SG 各Stackで 同じTemplate を参照
87.
新しい支店のIPを追加する CompanySG.yaml Company SG
88.
1. CompanySGに新しい支店のIPを追加する 支店のIPを CompanySG に追加 CompanySG.yaml Company SG
89.
2. CampanySG.yamlをS3にアップロード CompanySG.yaml Company SG
90.
3. 各Stackを更新 ELB EC2 Company SG ServiceA Stack ELB Company SG EC2 ServiceB
Stack Company SG 変更を 加えずに更新
91.
4. Campany.yamlの変更が各Stackに反映される ELB EC2 Company SG ServiceA Stack ELB Company SG EC2 ServiceB
Stack Company SG Campany.yaml と同期
92.
Stackの管理者 は社内IPの 保守はしない 共通パターンの保守が容易に ELB EC2 Company SG ServiceA Stack ELB Company SG EC2 ServiceB Stack Company SG
93.
Stackの管理者 は社内IPの 保守はしない 仕事が減った! ELB EC2 Company SG ServiceA Stack ELB Company SG EC2 ServiceB Stack Company SG
94.
おまけ
95.
より詳細な実践方法はブログをご参照ください
96.
目次 1. 自己紹介 &
会社紹介 2. 問題点 3. 実践!ベストプラクティス 4. まとめ
97.
1. 記述の簡素化 2. Stackの管理を分担 3.
変更コストが激減 CloudFormationの管理が圧倒的に楽になったッッ!!!
98.
1. 記述の簡素化 2. Stackの管理を分担 3.
変更コストが激減 CloudFormationの管理が圧倒的に楽になったッッ!!!
99.
● 1Templateの行数: 3000行
→ ● Parametersの数: 20個 → Templateの記述がかなりシンプルになった Stack分割で1Templateがミニマム化
100.
● 1Templateの行数: 3000行
→ 200行 ● Parametersの数: 20個 → Templateの記述がかなりシンプルになった Stack分割で1Templateがミニマム化
101.
● 1Templateの行数: 3000行
→ 200行 ● Parametersの数: 20個 → 2〜5個 Templateの記述がかなりシンプルになった Stack分割で1Templateがミニマム化
102.
● 1Templateの行数: 3000行
→ 200行 ● Parametersの数: 20個 → 2〜5個 よっしゃ! Stack分割で1Templateが小さくなった
103.
1. 記述の簡素化 2. Stackの管理を分担 3.
変更コストが激減 CloudFormationの管理が圧倒的に楽になったッッ!!!
104.
● アプリ側でもリソースの管理が可能に ● テスト環境の作成依頼がなくなる ●
インフラ担当がボトルネックじゃなくなる チームとStackを分担して管理可能に 専用Templateを作成した結果
105.
● アプリ側でもリソースの管理が可能に? ● テスト環境の作成依頼がなくなるかも... よかった! 所有権でStackを分割した結果
106.
1. 記述の簡素化 2. Stackの管理を分担 3.
変更コストが激減 CloudFormationの管理が圧倒的に楽になったッッ!!!
107.
● Stack間の連携が容易に ● 影響範囲の特定が容易に ●
リリース日の調整が不要に 変更にかかるコストが激減 クロススタック参照でリソースの依存が限定された
108.
● 影響範囲の特定が容易に ● リリース日の調整が不要に ●
変更セットが使用可能に! やったね! Stackの分割でリソースの依存が限定された
109.
さいごに
110.
111.
ありがとうございました!!!
Download now