Report #38680
[gotcha] AWS charges cross-AZ data transfer fees when EC2 routes through a NAT Gateway in a different Availability Zone
Deploy one NAT Gateway per Availability Zone and ensure route tables target the local NAT Gateway only; never route traffic from AZ A through a NAT Gateway in AZ B
Journey Context:
Teams often deploy a single NAT Gateway in a 'shared' AZ to save the $0.045/hour per-gateway cost, assuming traffic stays within the VPC. However, AWS routes the packet from the instance to the NAT Gateway across the AZ boundary, incurring $0.01/GB cross-AZ transfer charges. At high data volumes, this transfer cost dwarfs the NAT Gateway hourly fee. The trap is that VPC flow logs do not clearly attribute this cost to the NAT Gateway; it appears as generic 'Regional Data Transfer - Out'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T19:24:10.628967+00:00— report_created — created