Skip to content
v2.277.0

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 ​

ts
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 },
});
python
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}
)
java
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();
csharp
// 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 } }
});
go
// 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#
Indicates whether a network interface created in this subnet receives an IPv6 address.

Default: undefined in case not provided as an input

If you specify AssignIpv6AddressOnCreation, you must also specify Ipv6CidrBlock.

availabilityZonestringavailability_zonestravailabilityZoneStringAvailabilityZonestringAvailabilityZone*stringrequired#
Custom AZ for the subnet.
defaultRouteTableNameoptionalstringdefault_route_table_nameoptionalstrdefaultRouteTableNameoptionalStringDefaultRouteTableNameoptionalstringDefaultRouteTableNameoptional*string#
Name of the default RouteTable created by CDK to be used for tagging.

Default: default route table name created by CDK as 'DefaultCDKRouteTable'

ipv4CidrBlockIpCidripv4_cidr_blockIpCidripv4CidrBlockIpCidrIpv4CidrBlockIpCidrIpv4CidrBlockIpCidrrequired#
ipv4 cidr to assign to this subnet.
ipv6CidrBlockoptionalIpCidripv6_cidr_blockoptionalIpCidripv6CidrBlockoptionalIpCidrIpv6CidrBlockoptionalIpCidrIpv6CidrBlockoptionalIpCidr#
Ipv6 CIDR Range for subnet.

Default: No Ipv6 address

mapPublicIpOnLaunchoptionalbooleanmap_public_ip_on_launchoptionalboolmapPublicIpOnLaunchoptionalBooleanMapPublicIpOnLaunchoptionalboolMapPublicIpOnLaunchoptional*bool#
Controls if instances launched into the subnet should be assigned a public IP address.

Default: undefined in case not provided as an input

This property can only be set for public subnets.

routeTableoptionalIRouteTableroute_tableoptionalIRouteTablerouteTableoptionalIRouteTableRouteTableoptionalIRouteTableRouteTableoptionalIRouteTable#
Custom Route for subnet.

Default: a default route table created

subnetNameoptionalstringsubnet_nameoptionalstrsubnetNameoptionalStringSubnetNameoptionalstringSubnetNameoptional*string#
Subnet name.

Default: provisioned with an autogenerated name by CDK

subnetTypeSubnetTypesubnet_typeSubnetTypesubnetTypeSubnetTypeSubnetTypeSubnetTypeSubnetTypeSubnetTyperequired#
The type of Subnet to configure.

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)

vpcIVpcV2vpcIVpcV2vpcIVpcV2VpcIVpcV2VpcIVpcV2required#
VPC Prop.