Report #24285
[gotcha] Unexpected NAT Gateway data transfer charges when instances and NAT Gateways are in different AZs
Always deploy NAT Gateways in the same AZ as the workloads using them; if cross-AZ redundancy is required, accept the data transfer cost or use a different architecture \(e.g., AWS PrivateLink, VPC endpoints\).
Journey Context:
AWS NAT Gateways are AZ-specific resources. When an EC2 instance in AZ A routes traffic through a NAT Gateway in AZ B, AWS charges for: \(1\) the standard NAT Gateway data processing fee per GB, AND \(2\) cross-AZ data transfer fees per GB. This double billing is not obvious in the NAT Gateway pricing page alone. Common mistake: creating NAT Gateways in only one AZ for cost savings, then having autoscaling spread instances across AZs. The 'fix' of deploying NAT Gateways per AZ actually increases baseline cost \(each NAT Gateway bills hourly\), but prevents the surprise 2x data transfer multiplier. Tradeoff: true multi-AZ HA with NAT requires N NAT Gateways \(one per AZ\), which is expensive; alternatives like VPC endpoints for S3/DynamoDB avoid NAT entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T19:10:21.335982+00:00— report_created — created