More Related Content
Similar to AWS CloudFormationによるInfrastructure as Codeの実現
Similar to AWS CloudFormationによるInfrastructure as Codeの実現 (20)
AWS CloudFormationによるInfrastructure as Codeの実現
- 19. AWS CloudFormation - テンプレート構成
AWSTemplateFormatVersion: 2010-09-09
Description : sample stack
Parameters:
Env:
Type: String
AllowedValues:
- “prd”
- “stg”
- “dev”
Resources:
VPC:
Type: AWS::EC2::VPC
・・・・
Outputs:
OutVPC:
Value: !Ref VPC
Parameters: スタック作成時のパラメータ
Resources: 作成対象のリソース
Outputs: テンプレート間で共有する値
他にもあるが、大きく3つの構成となる
- 20. AWS CloudFormation - テンプレート構成
AWSTemplateFormatVersion: 2010-09-09
Description : sample stack
Parameters:
Env:
Type: String
AllowedValues:
- “prd”
- “stg”
- “dev”
Resources:
VPC:
Type: AWS::EC2::VPC
・・・・
Outputs:
OutVPC:
Value: !Ref VPC
パラメータ値の指定
Typeに型を定義
AllowedValuesで選択項目を設定することで実行時に選択させること
ができる
- 22. AWS CloudFormation - テンプレート構成
AWSTemplateFormatVersion: 2010-09-09
Description : sample stack
Parameters:
Env:
Type: String
AllowedValues:
- “prd”
- “stg”
- “dev”
Resources:
VPC:
Type: AWS::EC2::VPC
・・・・
Outputs:
OutVPC:
Value: !Ref VPC
リソースタイプを指定
下に各種設定のパラメータを指定する
- 23. AWS CloudFormation - テンプレート構成
AWSTemplateFormatVersion: 2010-09-09
Description : sample stack
Parameters:
Env:
Type: String
AllowedValues:
- “prd”
- “stg”
- “dev”
Resources:
VPC:
Type: AWS::EC2::VPC
・・・・
Outputs:
OutVPC:
Value: !Ref VPC
Resourcesで作成した情報を他のテンプレートから
参照できるようにするための出力
- 24. AWS CloudFormation – デプロイ
• AWS コンソール:CloudFormationスタック作成画面
• AWS CLI
デプロイ方法
デプロイの特徴
• エラーを検出するとロールバックされる
• 変更分だけを適用できる
- 25. 実演 - 今回作るもの
VPC
Availability Zone 1a
Private subnet
EC2 Instance
Availability Zone 1c
Private subnet
EC2 Instance
Auto Scaling group
SQS DynamoDB S3 SNSIAM
• VPC×1
• ルートテーブル×1
• プライベートサブネット×2
• EC2×2
• セキュリティグループ×1
• AutoScaling×1
• セキュリティポリシー
• IAMロール×1
• 各VPCエンドポイント
• その他各サービス情報
- 35. 他の選択肢
AWS CDK(Cloud Development Kit)
プログラム言語(JavaScript, TypeScript, Python, Java, .NETなど)を使ってスタック
作成を実現できる。
もちろんifやループが自由に使える。効率よく実装可能。
CloudFormationができることはほとんどできる。
最近正式リリースされたばかりであるため、実現できないこともあるよう・・
今後はこちらにシフトしていきたい。
https://github.com/aws/aws-cdk