AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::LanguageExtensions
Mappings:
VpcM:
Vpc01:
Cidr: 10.0.1.0/24
Name: test-vpc-01
Vpc02:
Cidr: 10.0.2.0/24
Name: test-vpc-02
SubnetVpc01M:
Vpc01Prv01:
Cidr: 10.0.1.0/28
Az: ap-northeast-1a
Name: Vpc01Prv01
Vpc01Prv02:
Cidr: 10.0.1.16/28
Az: ap-northeast-1c
Name: Vpc01Prv02
SubnetVpc02M:
Vpc02Prv01:
Cidr: 10.0.2.0/28
Az: ap-northeast-1a
Name: Vpc02Prv01
Vpc02Prv02:
Cidr: "10.0.2.16/28"
Az: "ap-northeast-1c"
Name: Vpc02Prv02
Resources:
# vpc
'Fn::ForEach::VPC':
- VpcName
- [Vpc01, Vpc02]
- '${VpcName}':
Type: 'AWS::EC2::VPC'
Properties:
CidrBlock: !FindInMap [VpcM, !Ref VpcName, Cidr]
EnableDnsHostnames: true
EnableDnsSupport: true
Tags:
- Key: Name
Value: !FindInMap [VpcM, !Ref VpcName, Name]
# vpc01 subnet
'Fn::ForEach::SubnetVpc1':
- SubnetName
- [Vpc01Prv01, Vpc01Prv02]
- '${SubnetName}':
Type: 'AWS::EC2::Subnet'
Properties:
AvailabilityZone: !FindInMap [SubnetVpc01M, !Ref SubnetName, Az]
# 修正したいポイント(後述)
VpcId: !Ref Vpc01
CidrBlock: !FindInMap [SubnetVpc01M, !Ref SubnetName, Cidr]
Tags:
- Key: Name
Value: !FindInMap [SubnetVpc01M, !Ref SubnetName, Name]
# vpc02 subnet
'Fn::ForEach::SubnetVpc2':
- SubnetName
- [Vpc02Prv01, Vpc02Prv02]
- '${SubnetName}':
Type: 'AWS::EC2::Subnet'
Properties:
AvailabilityZone: !FindInMap [SubnetVpc02M, !Ref SubnetName, Az]
# 修正したいポイント(後述)
VpcId: !Ref Vpc02
CidrBlock: !FindInMap [SubnetVpc02M, !Ref SubnetName, Cidr]
Tags:
- Key: Name
Value: !FindInMap [SubnetVpc02M, !Ref SubnetName, Name]