Count the route tables, routes and subnet associations a VPC design needs and check them against the AWS route quota.
A subnet associates with exactly one route table, so the table count is the number of distinct routing behaviours multiplied by the zones you replicate them in — a per-zone private table is required whenever each zone routes to its own NAT Gateway. Each table starts with one automatic local route per associated VPC CIDR block, and the default quota of 50 routes counts static entries but not propagated Transit Gateway routes. Route tables are the least visible AWS quota: hitting 50 routes mid-migration means either an emergency aggregation exercise or a support ticket on the critical path.
Route Table
tables = routing behaviours × zones; routes per table = local routes (one per VPC CIDR block) + 1 default route + static routes.
tables = routing behaviours × zones; routes per table = local routes (one per VPC CIDR block) + 1 default route + static routes. A subnet associates with exactly one route table, so the table count is the number of distinct routing behaviours multiplied by the zones you replicate them in — a per-zone private table is required whenever each zone routes to its own NAT Gateway. Each table starts with one automatic local route per associated VPC CIDR block, and the default quota of 50 routes counts static entries but not propagated Transit Gateway routes.
Route tables are the least visible AWS quota: hitting 50 routes mid-migration means either an emergency aggregation exercise or a support ticket on the critical path.
This calculator takes 6 inputs: Subnets in the VPC, Distinct routing behaviours, Availability Zones in use, CIDR blocks associated with the VPC, Static routes per table, Routes per route table quota. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
No. The default limit of 50 applies to static routes per route table; dynamically propagated routes from a Transit Gateway association are counted separately, which is one reason a hub design scales further than a peering mesh full of static entries.
Because the next hop differs. If each zone has its own NAT Gateway for resilience and to avoid cross-zone charges, each zone's private subnets need a table whose default route points at the local gateway.