NatInstanceProvider Class
NAT provider which uses NAT Instances.
Example
const natInstanceProvider = ec2.NatProvider.instance({
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T4G, ec2.InstanceSize.LARGE),
machineImage: new ec2.AmazonLinuxImage(),
creditSpecification: ec2.CpuCredits.UNLIMITED,
});
new ec2.Vpc(this, 'VPC', {
natGatewayProvider: natInstanceProvider,
});
nat_instance_provider = ec2.NatProvider.instance(
instance_type=ec2.InstanceType.of(ec2.InstanceClass.T4G, ec2.InstanceSize.LARGE),
machine_image=ec2.AmazonLinuxImage(),
credit_specification=ec2.CpuCredits.UNLIMITED
)
ec2.Vpc(self, "VPC",
nat_gateway_provider=nat_instance_provider
)
NatInstanceProvider natInstanceProvider = NatProvider.instance(NatInstanceProps.builder()
.instanceType(InstanceType.of(InstanceClass.T4G, InstanceSize.LARGE))
.machineImage(new AmazonLinuxImage())
.creditSpecification(CpuCredits.UNLIMITED)
.build());
Vpc.Builder.create(this, "VPC")
.natGatewayProvider(natInstanceProvider)
.build();
// Install: dotnet add package Amazon.CDK.Lib
var natInstanceProvider = NatProvider.Instance(new NatInstanceProps {
InstanceType = InstanceType.Of(InstanceClass.T4G, InstanceSize.LARGE),
MachineImage = new AmazonLinuxImage(),
CreditSpecification = CpuCredits.UNLIMITED
});
new Vpc(this, "VPC", new VpcProps {
NatGatewayProvider = natInstanceProvider
});
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
natInstanceProvider := ec2.NatProvider_Instance(&NatInstanceProps{
InstanceType: ec2.InstanceType_Of(ec2.InstanceClass_T4G, ec2.InstanceSize_LARGE),
MachineImage: ec2.NewAmazonLinuxImage(),
CreditSpecification: ec2.CpuCredits_UNLIMITED,
})
ec2.NewVpc(this, jsii.String("VPC"), &VpcProps{
NatGatewayProvider: natInstanceProvider,
})
Initializer
new NatInstanceProvider(props: NatInstanceProps)
NatInstanceProvider(props: NatInstanceProps)
new NatInstanceProvider(NatInstanceProps props)
new NatInstanceProvider(NatInstanceProps props)
NewNatInstanceProvider(Props NatInstanceProps)
Properties
configuredGatewaysGatewayConfig[]configured_gatewaystyping.List[GatewayConfig]configuredGatewaysList<GatewayConfig>ConfiguredGatewaysGatewayConfig[]ConfiguredGateways*[]GatewayConfigrequired#connectionsConnectionsconnectionsConnectionsconnectionsConnectionsConnectionsConnectionsConnectionsConnectionsrequired#securityGroupISecurityGroupsecurity_groupISecurityGroupsecurityGroupISecurityGroupSecurityGroupISecurityGroupSecurityGroupISecurityGrouprequired#Methods
configureNat(options: ConfigureNatOptions): voiddef configure_nat(self, options: ConfigureNatOptions) -> Nonepublic void configureNat(ConfigureNatOptions options)public void ConfigureNat(ConfigureNatOptions options)func ConfigureNat(Options ConfigureNatOptions)#Don't call this directly, the VPC will call it automatically.
configureSubnet(subnet: PrivateSubnet): voiddef configure_subnet(self, subnet: PrivateSubnet) -> Nonepublic void configureSubnet(PrivateSubnet subnet)public void ConfigureSubnet(PrivateSubnet subnet)func ConfigureSubnet(Subnet PrivateSubnet)#Don't call this directly, the VPC will call it automatically.
gateway(props?: NatGatewayProps): NatProvider@staticmethod def gateway(props: typing.Optional[NatGatewayProps] = None) -> NatProviderpublic static NatProvider gateway(NatGatewayProps props)public static NatProvider Gateway(NatGatewayProps? props = null)func Gateway(Props NatGatewayProps) NatProviderstatic#NAT gateways are managed by AWS.
instance(props: NatInstanceProps): NatInstanceProvider // chainable@staticmethod def instance(props: NatInstanceProps) -> NatInstanceProviderpublic static NatInstanceProvider instance(NatInstanceProps props)public static NatInstanceProvider Instance(NatInstanceProps props)func Instance(Props NatInstanceProps) NatInstanceProviderstaticdeprecated#notes
NAT instances are managed by you, but in return allow more configuration.
Be aware that instances created using this provider will not be automatically replaced if they are stopped for any reason. You should implement your own NatProvider based on AutoScaling groups if you need that.
instanceV2(props: NatInstanceProps): NatInstanceProviderV2@staticmethod def instance_v2(props: NatInstanceProps) -> NatInstanceProviderV2public static NatInstanceProviderV2 instanceV2(NatInstanceProps props)public static NatInstanceProviderV2 InstanceV2(NatInstanceProps props)func InstanceV2(Props NatInstanceProps) NatInstanceProviderV2static#notes
NAT instances are managed by you, but in return allow more configuration.
Be aware that instances created using this provider will not be automatically replaced if they are stopped for any reason. You should implement your own NatProvider based on AutoScaling groups if you need that.
regionalGateway(props?: RegionalNatGatewayProviderProps): RegionalNatGatewayProvider@staticmethod def regional_gateway(props: typing.Optional[RegionalNatGatewayProviderProps] = None) -> RegionalNatGatewayProviderpublic static RegionalNatGatewayProvider regionalGateway(RegionalNatGatewayProviderProps props)public static RegionalNatGatewayProvider RegionalGateway(RegionalNatGatewayProviderProps? props = null)func RegionalGateway(Props RegionalNatGatewayProviderProps) RegionalNatGatewayProviderstatic#Regional NAT Gateways provide automatic multi-AZ redundancy with a single gateway that scales across availability zones. AWS automatically manages AZ coverage and EIP allocation.