class IpAddresses
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.EC2.IpAddresses |
Go | github.com/aws/aws-cdk-go/awscdk/v2/awsec2#IpAddresses |
Java | software.amazon.awscdk.services.ec2.IpAddresses |
Python | aws_cdk.aws_ec2.IpAddresses |
TypeScript (source) | aws-cdk-lib » aws_ec2 » IpAddresses |
An abstract Provider of IpAddresses.
Note this is specific to the IPv4 CIDR.
Example
const vpc = new ec2.Vpc(this, 'TheVPC', {
// 'IpAddresses' configures the IP range and size of the entire VPC.
// The IP space will be divided based on configuration for the subnets.
ipAddresses: ec2.IpAddresses.cidr('10.0.0.0/21'),
// 'maxAzs' configures the maximum number of availability zones to use.
// If you want to specify the exact availability zones you want the VPC
// to use, use `availabilityZones` instead.
maxAzs: 3,
// 'subnetConfiguration' specifies the "subnet groups" to create.
// Every subnet group will have a subnet for each AZ, so this
// configuration will create `3 groups × 3 AZs = 9` subnets.
subnetConfiguration: [
{
// 'subnetType' controls Internet access, as described above.
subnetType: ec2.SubnetType.PUBLIC,
// 'name' is used to name this particular subnet group. You will have to
// use the name for subnet selection if you have more than one subnet
// group of the same type.
name: 'Ingress',
// 'cidrMask' specifies the IP addresses in the range of of individual
// subnets in the group. Each of the subnets in this group will contain
// `2^(32 address bits - 24 subnet bits) - 2 reserved addresses = 254`
// usable IP addresses.
//
// If 'cidrMask' is left out the available address space is evenly
// divided across the remaining subnet groups.
cidrMask: 24,
},
{
cidrMask: 24,
name: 'Application',
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
},
{
cidrMask: 28,
name: 'Database',
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
// 'reserved' can be used to reserve IP address space. No resources will
// be created for this subnet, but the IP range will be kept available for
// future creation of this subnet, or even for future subdivision.
reserved: true
}
],
});
Methods
Name | Description |
---|---|
static aws | Used to provide centralized Ip Address Management services for your VPC. |
static cidr(cidrBlock) | Used to provide local Ip Address Management services for your VPC. |
IpamAllocation(props)
static awspublic static awsIpamAllocation(props: AwsIpamProps): IIpAddresses
Parameters
- props
Aws
Ipam Props
Returns
Used to provide centralized Ip Address Management services for your VPC.
Uses VPC CIDR allocations from AWS IPAM
Note this is specific to the IPv4 CIDR.
See also: https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html
static cidr(cidrBlock)
public static cidr(cidrBlock: string): IIpAddresses
Parameters
- cidrBlock
string
Returns
Used to provide local Ip Address Management services for your VPC.
VPC CIDR is supplied at creation and subnets are calculated locally
Note this is specific to the IPv4 CIDR.