How to Choose a CIDR Block for Your AWS VPC
Guidance on picking the right VPC CIDR, avoiding conflicts with on-premises networks, sizing subnets per AZ, and planning for growth.
AWS VPC CIDR constraints
Before picking a CIDR, understand AWS's limits:
- →VPC CIDR must be between
/16(65,536 IPs) and/28(16 IPs). - →AWS reserves 5 IPs per subnet: .0 (network), .1 (router), .2 (DNS), .3 (future), .255 (broadcast).
- →You can add up to 5 secondary CIDR blocks per VPC (useful to expand later).
- →VPC CIDR cannot be changed after creation — choose carefully.
- →Overlapping CIDRs between peered VPCs or with on-premises networks will prevent connectivity.
Recommended CIDR choices
Use a /16 from the 10.0.0.0/8 range:
Each /16 gives 65,536 IPs. With a /8 supernet, you can have 256 distinct /16 VPCs before running out — perfect for multi-account AWS organizations.
192.168.x.x— conflicts with most home networks over VPN172.17.0.0/16— Docker's default bridge network172.31.0.0/16— AWS default VPC (already in use)10.0.0.0/16— overused; pick a less common 10.x.x.x/16
Subnet sizing per AZ
A typical 3-AZ VPC with public + private + intra (database) tiers per AZ.
Starting from 10.0.0.0/16:
| Subnet | CIDR | AZ | Tier | Usable IPs |
|---|---|---|---|---|
| Public AZ-a | 10.0.0.0/24 | us-east-1a | Public (NAT GW, ALB) | 251 |
| Public AZ-b | 10.0.1.0/24 | us-east-1b | Public | 251 |
| Public AZ-c | 10.0.2.0/24 | us-east-1c | Public | 251 |
| Private AZ-a | 10.0.10.0/24 | us-east-1a | App / ECS / EKS nodes | 251 |
| Private AZ-b | 10.0.11.0/24 | us-east-1b | App | 251 |
| Private AZ-c | 10.0.12.0/24 | us-east-1c | App | 251 |
| Intra AZ-a | 10.0.20.0/24 | us-east-1a | RDS, ElastiCache | 251 |
| Intra AZ-b | 10.0.21.0/24 | us-east-1b | RDS, ElastiCache | 251 |
| Intra AZ-c | 10.0.22.0/24 | us-east-1c | RDS, ElastiCache | 251 |
251 usable = 256 − 5 reserved AWS IPs per subnet.
FAQ
What CIDR block should I use for my AWS VPC?
For most VPCs, use a /16 from 10.0.0.0/8. Pick a different 10.x.x.x/16 for each VPC to make VPC peering and Transit Gateway routing straightforward. Avoid 192.168.x.x (VPN conflicts) and 172.17-31.x.x (Docker and AWS defaults).
How many IPs does AWS reserve per subnet?
AWS reserves 5 IPs in every subnet: .0 (network address), .1 (VPC router), .2 (AWS DNS), .3 (reserved future use), .255 (broadcast). A /24 subnet therefore has 251 usable IPs — not 254.
Can I change my VPC CIDR later?
The primary CIDR cannot be changed after VPC creation. You can, however, add up to 5 secondary CIDR blocks to expand the address space. Plan carefully and use /16 rather than /24 to leave room for growth within the primary CIDR.