「AWS CloudFormationの組み込み関数を使って柔軟なCFnテンプレートを作成しよう」というビデオセッションで話しました #devio2023
DevelopersIO 2023で公開したビデオセッション「AWS CloudFormationの組み込み関数を使って柔軟なCFnテンプレートを作成しよう」のセッションブログです。
たぬき( @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の関数について、触っていればわかるという方もいますが、整理して頭に入れることが大切だと思ったので今回解説動画を出させていただきました。
このセッションが誰かの助けになれば幸いです。