Report #65930
[gotcha] Unexpected AWS NAT Gateway data processing charges dwarfing hourly rates
Eliminate cross-AZ NAT traffic by placing NAT Gateway in the same AZ as workloads, or replace NAT Gateway with VPC Endpoints \(PrivateLink\) for S3/DynamoDB to bypass NAT entirely.
Journey Context:
NAT Gateway pricing has two components: hourly rate \(~$0.045/hr\) and data processing charge \(~$0.045/GB\). In a busy environment processing 10TB/month, the data charge is $450 vs $33 hourly. The real trap is cross-AZ traffic: if your EC2 is in AZ-1 but NAT Gateway is in AZ-2 \(for 'high availability'\), traffic routes AZ1→AZ2 \(costs $0.01/GB cross-AZ\) then NAT processes it \(another $0.045/GB\), doubling or tripling the cost. The fix requires co-locating NAT Gateways per AZ \(one per AZ, routes configured so AZ1 uses AZ1 NAT\) to avoid cross-AZ charges, and aggressively using VPC Endpoints for AWS services \(S3, DynamoDB, etc.\) which bypass NAT Gateway entirely, removing both data processing and cross-AZ costs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T17:08:31.887873+00:00— report_created — created