たぬき( @tanuki_tzp )です。
DevelopersIO 2023にて、ビデオセッションで参加いたしましたので、そのセッションブログとなります。
セッションについて
AWS CloudFormationの組み込み関数について、個人的によく使うものをセレクトして解説しました。
初心者向けとなっていますので、関数をなんとなく使っている方やテンプレートの使い回しに悩んでいる方に届けば幸いです。
Youtube
セッションスライド
スライド内に出てくるCloudFormationテンプレート抜粋
ベーステンプレート
AWSTemplateFormatVersion: "2010-09-09"
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Subnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.0.0/24
Selectテンプレート
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
AvailabilityZones:
Type: List<AWS::EC2::AvailabilityZone::Name>
Default: ap-northeast-1a
AllowedValues:
- ap-northeast-1a
- ap-northeast-1c
- ap-northeast-1d
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Subnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.0.0/24
AvailabilityZone: !Select [0, !Ref AvailabilityZones]
Cidrテンプレート
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
VpcCidrBlock:
Type: String
Default: "10.0.0.0/16"
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidrBlock
Subnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Select [0, !Cidr [!Ref VpcCidrBlock, 1, 8]]
Joinテンプレート
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
VpcCidrBlock:
Type: String
Default: "10.0.0.0/16"
Environment:
Type: String
Default: "prd"
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidrBlock
Tags:
- Key: Name
Value: !Join [ "-", [ !Ref Environment, "sample", "VPC"]]
Subnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Select [0, !Cidr [!Ref VpcCidrBlock, 1, 8]]
Tags:
- Key: Name
Value: !Join [ "-", [ !Ref Environment, "sample", "subnet"]]
Subテンプレート
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
VpcCidrBlock:
Type: String
Default: "10.0.0.0/16"
Environment:
Type: String
Default: "prd"
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidrBlock
Tags:
- Key: Name
Value: !Sub ”${Environment}-sample-VPC"
Subnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Select [0, !Cidr [!Ref VpcCidrBlock, 0, 8]]
Tags:
- Key: Name
Value: !Sub ”${Environment}-sample-subnet"
おわりに
CloudFormationの関数について、触っていればわかるという方もいますが、整理して頭に入れることが大切だと思ったので今回解説動画を出させていただきました。
このセッションが誰かの助けになれば幸いです。