AWS VPC Subnet Sizing: Usable IP Addresses Per CIDR Block

A "/24 gives 254 usable hosts" is the textbook subnetting answer. Inside an AWS VPC it's wrong by 3 — AWS reserves 5 addresses per subnet, not the 2 (network + broadcast) that standard subnetting math accounts for. Here's the exact count for every common VPC subnet size.

Why AWS reserves 5, not 2

Standard IPv4 subnetting reserves two addresses per subnet: the network address (all host bits 0) and the broadcast address (all host bits 1). AWS reserves three more on top of that, per AWS's VPC sizing documentation:

That's 5 total, so a subnet's AWS-usable count is 2^(32 − prefix) − 5 instead of the standard 2^(32 − prefix) − 2.

Usable addresses by subnet size

CIDRTotal addressesStandard usableAWS VPC usableGCP VPC usable
/1665,53665,53465,53165,533
/1732,76832,76632,76332,765
/1816,38416,38216,37916,381
/198,1928,1908,1878,189
/204,0964,0944,0914,093
/212,0482,0462,0432,045
/221,0241,0221,0191,021
/23512510507509
/24256254251253
/25128126123125
/2664625961
/2732302729
/2816141113

Range shown is /16 to /28 — AWS's allowed VPC subnet size range. GCP reserves 3 addresses (network, a second address, and broadcast) per GCP's VPC subnet documentation, so its usable count sits between the standard and AWS figures.

Need a size that isn't in this table, an IPv6 subnet, or the reverse calculation (two IPs → smallest covering CIDR)? The full calculator below handles any prefix length and both address families.

← Open the full CIDR / subnet calculator