Plan private IP address space allocation across VPCs and subnets.
RFC 1918 reserves three private address ranges for internal use: 10.0.0.0/8 (about 16.7 million addresses — the largest, best suited for big multi-site/multi-VPC deployments), 172.16.0.0/12 (about 1 million addresses), and 192.168.0.0/16 (65,536 addresses — common for small offices and home networks). Planning at scale means picking a per-site/per-VPC CIDR block size large enough for that site's address needs, then multiplying by the number of sites to check the total fits within the chosen range — while leaving room for growth and avoiding overlaps with other environments you may need to connect to.
Total addresses needed with CIDR alignment
total = per_site_block_size × number_of_sites, where block_size is the smallest power of 2 ≥ addresses needed per site
10.0.0.0/8 is generally preferred for large or growing deployments needing many sites/VPCs, since its ~16.7 million addresses provide the most room for hierarchical subnetting (region/site/subnet) without running out of space, unlike the much smaller 172.16/12 or 192.168/16 ranges.
Using a consistent, CIDR-aligned block size per site simplifies routing, summarization, and firewall rule management significantly — even if it means a few unused addresses per site, the operational simplicity of uniform blocks usually outweighs the minor address space waste.
Overlapping private address ranges between two environments you need to connect (e.g. via VPN, peering, or company merger) require either re-addressing one side or using NAT/overlay techniques to work around the conflict — both costly, which is why planning non-overlapping allocations from the start matters.
Yes — choosing the very next power-of-two size larger than your immediate need (rather than the bare minimum) gives headroom for organic growth without needing to renumber or expand into fragmented, non-contiguous address space later.