Route Table Calculator
Count the route tables, routes and subnet associations a VPC design needs and check them against the AWS route quota.
Inputs
Subnets that need identical routes can share one table.
Peering, Transit Gateway, VPN and endpoint prefixes.
Route Tables Needed
9
Routes per Table
17
Subnet Associations
12
Route Quota Headroom
66.0%
Quota Check
Within quota with 33 routes spare per table
Step by step
Values used
Subnets in the VPC = 12 subnets; Distinct routing behaviours = 3 tiers; Availability Zones in use = 3 zones; CIDR blocks associated with the VPC = 2 blocks; Static routes per table = 14 routes; Routes per route table quota = 50 routes
Route Table
tables = routing behaviours × zones; routes per table = local routes (one per VPC CIDR block) + 1 default route + static routes.
Route Tables Needed
= 9
Routes per Table
= 17
Subnet Associations
= 12
Route Quota Headroom
= 66.0
Quota Check
= Within quota with 33 routes spare per table
How it works
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.
Formula
Route Table
tables = routing behaviours × zones; routes per table = local routes (one per VPC CIDR block) + 1 default route + static routes.
- routing behaviours
- Groups of subnets that need different next hops
- local routes
- Automatic routes for each associated VPC CIDR block
- quota
- Routes allowed per route table
Frequently Asked Questions
How is Route Table calculated?
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.
Why does Route Table matter?
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.
What values do I need to enter?
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.
Do propagated Transit Gateway routes count against the quota?
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.
Why do I need one private route table per Availability Zone?
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.
You might also need
- VPC CIDR CalculatorCommonly used together
- VPC Peering CalculatorCommonly used together
- AWS Subnet CalculatorCommonly used together
- AWS Network Health Score CalculatorCommonly used together
- Security Group Rule CalculatorCommonly used together
- Application Load Balancer Capacity CalculatorAlso in AWS Networking