Skip to content

VPCCidrBlock ​

The VPCCidrBlock resource lets you manage AWS EC2 VPCCidrBlocks for a specified VPC, allowing you to add IPv4 and IPv6 CIDR blocks to your Virtual Private Cloud (VPC).

Minimal Example ​

Create a basic VPC CIDR block with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const vpcCidrBlock = await AWS.EC2.VPCCidrBlock("myVpcCidrBlock", {
  VpcId: "vpc-12345678",
  CidrBlock: "192.168.1.0/24",
  Ipv4NetmaskLength: 24 // Optional: Specify the netmask length for IPv4
});

Advanced Configuration ​

Add an IPv6 CIDR block with additional properties for IPv6 configuration.

ts
const advancedVpcCidrBlock = await AWS.EC2.VPCCidrBlock("advancedVpcCidrBlock", {
  VpcId: "vpc-12345678",
  Ipv6CidrBlock: "2001:db8::/64", // Optional: Specify the CIDR block for IPv6
  Ipv6NetmaskLength: 64, // Optional: Specify the netmask length for IPv6
  AmazonProvidedIpv6CidrBlock: true // Optional: Request an Amazon-provided IPv6 CIDR block
});

Adopting Existing CIDR Block ​

If you want to adopt an existing resource instead of failing when it already exists, you can set the adopt property to true.

ts
const adoptVpcCidrBlock = await AWS.EC2.VPCCidrBlock("adoptVpcCidrBlock", {
  VpcId: "vpc-12345678",
  CidrBlock: "192.168.2.0/24",
  adopt: true // Optional: Adopt existing resource if it already exists
});

Using IPAM for CIDR Blocks ​

Create a VPC CIDR block using an IPAM pool for better IP address management.

ts
const ipamVpcCidrBlock = await AWS.EC2.VPCCidrBlock("ipamVpcCidrBlock", {
  VpcId: "vpc-12345678",
  Ipv4IpamPoolId: "ipam-pool-12345678", // Optional: Specify the IPAM pool ID for IPv4
  Ipv6IpamPoolId: "ipam-ipv6-pool-12345678", // Optional: Specify the IPAM pool ID for IPv6
  Ipv4NetmaskLength: 24,
  Ipv6NetmaskLength: 64
});