Report #7457
[gotcha] Cross-AZ traffic to a NAT Gateway incurs additional regional data transfer charges on top of the NAT processing fee
Deploy one NAT Gateway per Availability Zone and ensure route tables for subnets in AZ-1a target only the NAT Gateway in AZ-1a \(symmetric routing\); never route traffic from an instance in AZ-1a through a NAT Gateway in AZ-1b.
Journey Context:
To save costs, teams often deploy a single NAT Gateway in one AZ and route all private subnets across multiple AZs to it. Alternatively, they deploy one per AZ but misconfigure the route tables \(e.g., using a single route table associated with all private subnets pointing to a single NAT\). AWS charges for 'Regional Data Transfer' \(cross-AZ\) at $0.01/GB \(or more depending on region\) in addition to the NAT Gateway Data Processing charge \($0.045/GB\). A multi-AZ architecture with asymmetric routing can double the data transfer costs for outbound traffic. The solution requires strict AZ affinity: each private subnet's route table must point to the NAT in the same AZ, and this requires separate route tables per AZ, not just separate subnets.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:45:03.161411+00:00— report_created — created