Report #10499
[gotcha] Unexpected data transfer charges with NAT Gateway
Deploy one NAT Gateway per AZ and configure route tables to ensure instances always exit through the NAT Gateway in their own AZ.
Journey Context:
To save on hourly NAT Gateway costs \($0.045/hour ≈ $32/month\), teams often deploy a single NAT Gateway in one AZ and route all private subnets across multiple AZs to it. However, AWS charges inter-AZ data transfer \($0.01/GB\) for traffic leaving an instance in one AZ to reach a resource in another AZ. For high-bandwidth workloads \(logs, images, streaming\), this cross-AZ fee dwarfs the $32/month savings. The correct architecture is to deploy NAT Gateways per AZ \(one per AZ\) and ensure each subnet's route table points 0.0.0.0/0 to the NAT Gateway in the same AZ, eliminating cross-AZ transfer costs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:50:20.633358+00:00— report_created — created