aws-cdk-lib.aws_ec2.IpAddresses

class IpAddresses

LanguageType name
.NETAmazon.CDK.AWS.EC2.IpAddresses
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awsec2#IpAddresses
Javasoftware.amazon.awscdk.services.ec2.IpAddresses
Pythonaws_cdk.aws_ec2.IpAddresses
TypeScript (source)aws-cdk-lib » aws_ec2 » IpAddresses

An abstract Provider of IpAddresses.

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

NameDescription
static awsIpamAllocation(props)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.

static awsIpamAllocation(props)

public static awsIpamAllocation(props: AwsIpamProps): IIpAddresses

Parameters

  • props AwsIpamProps

Returns

  • IIpAddresses

Used to provide centralized Ip Address Management services for your VPC.

Uses VPC Cidr allocations from AWS IPAM

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

  • IIpAddresses

Used to provide local Ip Address Management services for your VPC.

VPC Cidr is supplied at creation and subnets are calculated locally