Experimental
@aws-cdk/aws-ec2-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
NatGatewayOptions Struct
Options to define a NAT gateway.
Example
const stack = new Stack();
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.PUBLIC });
myVpc.addInternetGateway();
myVpc.addNatGateway({
subnet: subnet,
connectivityType: NatConnectivityType.PUBLIC,
});
stack = Stack()
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.PUBLIC
)
my_vpc.add_internet_gateway()
my_vpc.add_nat_gateway(
subnet=subnet,
connectivity_type=NatConnectivityType.PUBLIC
)
Stack stack = new Stack();
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.PUBLIC)
.build();
myVpc.addInternetGateway();
myVpc.addNatGateway(NatGatewayOptions.builder()
.subnet(subnet)
.connectivityType(NatConnectivityType.PUBLIC)
.build());
// Install: dotnet add package Amazon.CDK.AWS.ec2.Alpha
var stack = new Stack();
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.PUBLIC
});
myVpc.AddInternetGateway();
myVpc.AddNatGateway(new NatGatewayOptions {
Subnet = subnet,
ConnectivityType = NatConnectivityType.PUBLIC
});
// Install: go get github.com/aws/aws-cdk-go/awsec2alpha/v2
stack := awscdk.Newstack()
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_PUBLIC,
})
myVpc.AddInternetGateway()
myVpc.AddNatGateway(&NatGatewayOptions{
Subnet: subnet,
ConnectivityType: awsec2alpha.NatConnectivityType_PUBLIC,
})
Properties
allocationIdoptionalstringallocation_idoptionalstrallocationIdoptionalStringAllocationIdoptionalstringAllocationIdoptional*string#Default: attr.allocationID of a new Elastic IP created by default //TODO: ADD L2 for elastic ip
This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.
connectivityTypeoptionalNatConnectivityTypeconnectivity_typeoptionalNatConnectivityTypeconnectivityTypeoptionalNatConnectivityTypeConnectivityTypeoptionalNatConnectivityTypeConnectivityTypeoptionalNatConnectivityType= NatConnectivityType.Public#maxDrainDurationoptionalDurationmax_drain_durationoptionalDurationmaxDrainDurationoptionalDurationMaxDrainDurationoptionalDurationMaxDrainDurationoptionalDuration= Duration.seconds(350)#natGatewayNameoptionalstringnat_gateway_nameoptionalstrnatGatewayNameoptionalStringNatGatewayNameoptionalstringNatGatewayNameoptional*string#Default: NATGW provisioned without any name
privateIpAddressoptionalstringprivate_ip_addressoptionalstrprivateIpAddressoptionalStringPrivateIpAddressoptionalstringPrivateIpAddressoptional*string#Default: If you don't provide an address, a private IPv4 address will be automatically assigned.
secondaryAllocationIdsoptionalstring[]secondary_allocation_idsoptionaltyping.List[str]secondaryAllocationIdsoptionalList<String>SecondaryAllocationIdsoptionalstring[]SecondaryAllocationIdsoptional*[]*string#Default: no secondary allocation IDs attached to NATGW
secondaryPrivateIpAddressCountoptionalnumbersecondary_private_ip_address_countoptionalint | floatsecondaryPrivateIpAddressCountoptionalNumberSecondaryPrivateIpAddressCountoptionaldoubleSecondaryPrivateIpAddressCountoptional*float64#Default: no secondary allocation IDs associated with NATGW
SecondaryPrivateIpAddressCount and SecondaryPrivateIpAddresses cannot be set at the same time.
secondaryPrivateIpAddressesoptionalstring[]secondary_private_ip_addressesoptionaltyping.List[str]secondaryPrivateIpAddressesoptionalList<String>SecondaryPrivateIpAddressesoptionalstring[]SecondaryPrivateIpAddressesoptional*[]*string#Default: no secondary private IpAddresses associated with NATGW
SecondaryPrivateIpAddressCount and SecondaryPrivateIpAddresses cannot be set at the same time.