Experimental
@aws-cdk/aws-ec2-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
SubnetV2Props Struct
Properties to define subnet for VPC.
Example
const myVpc = new VpcV2(this, 'Vpc');
const routeTable = new RouteTable(this, 'RouteTable', {
vpc: myVpc,
});
const subnet = new SubnetV2(this, 'Subnet', {
vpc: myVpc,
availabilityZone: 'eu-west-2a',
ipv4CidrBlock: new IpCidr('10.0.0.0/24'),
subnetType: SubnetType.PRIVATE_ISOLATED });
const natgw = new NatGateway(this, 'NatGW', {
subnet: subnet,
vpc: myVpc,
connectivityType: NatConnectivityType.PRIVATE,
privateIpAddress: '10.0.0.42',
});
new Route(this, 'NatGwRoute', {
routeTable,
destination: '0.0.0.0/0',
target: { gateway: natgw },
});
my_vpc = VpcV2(self, "Vpc")
route_table = RouteTable(self, "RouteTable",
vpc=my_vpc
)
subnet = SubnetV2(self, "Subnet",
vpc=my_vpc,
availability_zone="eu-west-2a",
ipv4_cidr_block=IpCidr("10.0.0.0/24"),
subnet_type=SubnetType.PRIVATE_ISOLATED
)
natgw = NatGateway(self, "NatGW",
subnet=subnet,
vpc=my_vpc,
connectivity_type=NatConnectivityType.PRIVATE,
private_ip_address="10.0.0.42"
)
Route(self, "NatGwRoute",
route_table=route_table,
destination="0.0.0.0/0",
target={"gateway": natgw}
)
VpcV2 myVpc = new VpcV2(this, "Vpc");
RouteTable routeTable = RouteTable.Builder.create(this, "RouteTable")
.vpc(myVpc)
.build();
SubnetV2 subnet = SubnetV2.Builder.create(this, "Subnet")
.vpc(myVpc)
.availabilityZone("eu-west-2a")
.ipv4CidrBlock(new IpCidr("10.0.0.0/24"))
.subnetType(SubnetType.PRIVATE_ISOLATED)
.build();
NatGateway natgw = NatGateway.Builder.create(this, "NatGW")
.subnet(subnet)
.vpc(myVpc)
.connectivityType(NatConnectivityType.PRIVATE)
.privateIpAddress("10.0.0.42")
.build();
Route.Builder.create(this, "NatGwRoute")
.routeTable(routeTable)
.destination("0.0.0.0/0")
.target(Map.of("gateway", natgw))
.build();
// Install: dotnet add package Amazon.CDK.AWS.ec2.Alpha
var myVpc = new VpcV2(this, "Vpc");
var routeTable = new RouteTable(this, "RouteTable", new RouteTableProps {
Vpc = myVpc
});
var subnet = new SubnetV2(this, "Subnet", new SubnetV2Props {
Vpc = myVpc,
AvailabilityZone = "eu-west-2a",
Ipv4CidrBlock = new IpCidr("10.0.0.0/24"),
SubnetType = SubnetType.PRIVATE_ISOLATED
});
var natgw = new NatGateway(this, "NatGW", new NatGatewayProps {
Subnet = subnet,
Vpc = myVpc,
ConnectivityType = NatConnectivityType.PRIVATE,
PrivateIpAddress = "10.0.0.42"
});
new Route(this, "NatGwRoute", new RouteProps {
RouteTable = routeTable,
Destination = "0.0.0.0/0",
Target = new Dictionary<string, IRouteTarget?> { { "gateway", natgw } }
});
// Install: go get github.com/aws/aws-cdk-go/awsec2alpha/v2
myVpc := awsec2alpha.NewVpcV2(this, jsii.String("Vpc"))
routeTable := awsec2alpha.NewRouteTable(this, jsii.String("RouteTable"), &RouteTableProps{
Vpc: myVpc,
})
subnet := awsec2alpha.NewSubnetV2(this, jsii.String("Subnet"), &SubnetV2Props{
Vpc: myVpc,
AvailabilityZone: jsii.String("eu-west-2a"),
Ipv4CidrBlock: awsec2alpha.NewIpCidr(jsii.String("10.0.0.0/24")),
SubnetType: awscdk.SubnetType_PRIVATE_ISOLATED,
})
natgw := awsec2alpha.NewNatGateway(this, jsii.String("NatGW"), &NatGatewayProps{
Subnet: subnet,
Vpc: myVpc,
ConnectivityType: awsec2alpha.NatConnectivityType_PRIVATE,
PrivateIpAddress: jsii.String("10.0.0.42"),
})
awsec2alpha.NewRoute(this, jsii.String("NatGwRoute"), &RouteProps{
RouteTable: RouteTable,
Destination: jsii.String("0.0.0.0/0"),
Target: map[string]iRouteTarget{
"gateway": natgw,
},
})
Properties
assignIpv6AddressOnCreationoptionalbooleanassign_ipv6_address_on_creationoptionalboolassignIpv6AddressOnCreationoptionalBooleanAssignIpv6AddressOnCreationoptionalboolAssignIpv6AddressOnCreationoptional*bool#Default: undefined in case not provided as an input
If you specify AssignIpv6AddressOnCreation, you must also specify Ipv6CidrBlock.
availabilityZonestringavailability_zonestravailabilityZoneStringAvailabilityZonestringAvailabilityZone*stringrequired#defaultRouteTableNameoptionalstringdefault_route_table_nameoptionalstrdefaultRouteTableNameoptionalStringDefaultRouteTableNameoptionalstringDefaultRouteTableNameoptional*string#Default: default route table name created by CDK as 'DefaultCDKRouteTable'
ipv4CidrBlockIpCidripv4_cidr_blockIpCidripv4CidrBlockIpCidrIpv4CidrBlockIpCidrIpv4CidrBlockIpCidrrequired#ipv6CidrBlockoptionalIpCidripv6_cidr_blockoptionalIpCidripv6CidrBlockoptionalIpCidrIpv6CidrBlockoptionalIpCidrIpv6CidrBlockoptionalIpCidr#Default: No Ipv6 address
mapPublicIpOnLaunchoptionalbooleanmap_public_ip_on_launchoptionalboolmapPublicIpOnLaunchoptionalBooleanMapPublicIpOnLaunchoptionalboolMapPublicIpOnLaunchoptional*bool#Default: undefined in case not provided as an input
This property can only be set for public subnets.
routeTableoptionalIRouteTableroute_tableoptionalIRouteTablerouteTableoptionalIRouteTableRouteTableoptionalIRouteTableRouteTableoptionalIRouteTable#Default: a default route table created
subnetNameoptionalstringsubnet_nameoptionalstrsubnetNameoptionalStringSubnetNameoptionalstringSubnetNameoptional*string#Default: provisioned with an autogenerated name by CDK
subnetTypeSubnetTypesubnet_typeSubnetTypesubnetTypeSubnetTypeSubnetTypeSubnetTypeSubnetTypeSubnetTyperequired#The Subnet type will control the ability to route and connect to the Internet.
TODO: Add validation check subnetType when adding resources (e.g. cannot add NatGateway to private)