🔖
AWS CDKで構築したVPCのテンプレートを眺めるだけの記事
早速眺めていきます。
ソース
from aws_cdk import (
core,
aws_ec2 as ec2
)
class CdkStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
ec2.Vpc(self,"CDK_TEST_HIROGA")
app.synth()
するところは省略。
Overview
(アイコンが小さくて分かりづらい...)
- VPC: 1つ
- Subnet: Public2つ、Private2つ
- InternetGateway: VPCに対して1つ
- NatGateway: PublicSubnetごとに1つ、合計2つ
- EIP: NatGatewayごとに1つ、合計2つ
- ほか、RouteTable, Route, SubnetRouteTableAssociation
VPC
- デフォルトのCIDR Blockは
10.0.0.0/16
。 - Nameの命名規則は、指定しない限り
スタック名
/リソースのID
になるようだ。
CDKTESTHIROGA2CBE18D7:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
EnableDnsSupport: true
InstanceTenancy: default
Tags:
- Key: Name
Value: cdk/CDK_TEST_HIROGA
Metadata:
aws:cdk:path: cdk/CDK_TEST_HIROGA/Resource
Public Subnet
- ネットワークアドレスはデフォルトで18ビット。
- AZ IDはデフォルトで
apne1-az4
とapne1-az1
[1] -
aws-cdk:subnet-name
は、既存のSubnetをCDKでimportする際に参照するための値。何も指定しないとaws-cdk:subnet-type
とおなじになるらしい。[2] -
aws-cdk:subnet-type
はISOLATED, PRIVATE, PUBLICのいずれか。
CDKTESTHIROGAPublicSubnet1SubnetEDE92B34:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.0.0/18
VpcId:
Ref: CDKTESTHIROGA2CBE18D7
AvailabilityZone:
Fn::Select:
- 0
- Fn::GetAZs: ""
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: cdk/CDK_TEST_HIROGA/PublicSubnet1
- Key: aws-cdk:subnet-name
Value: Public
- Key: aws-cdk:subnet-type
Value: Public
Metadata:
aws:cdk:path: cdk/CDK_TEST_HIROGA/PublicSubnet1/Subnet
おまけ
今回作成したテンプレート
Discussion