Report #6180
[gotcha] Unexpected high NAT Gateway data processing charges from cross-AZ traffic
Deploy NAT Gateways in each AZ where you have resources, and ensure resources use the NAT Gateway in their own AZ \(use AZ-specific route tables\). Implement VPC Gateway Endpoints for S3 and DynamoDB to bypass NAT Gateway entirely for those services. For other AWS services, use VPC Interface Endpoints \(PrivateLink\) to avoid NAT data processing charges.
Journey Context:
NAT Gateway bills per-GB data processing \($0.045/GB\) in addition to data transfer. If an EC2 in AZ-1 sends traffic to a NAT Gateway in AZ-2, you pay cross-AZ data transfer \($0.01/GB\) AND NAT processing. Many architects centralize NAT in one AZ to save on hourly costs, but this creates massive data transfer bills at scale. The correct pattern is 'one NAT per AZ' with strict routing. Additionally, VPC Endpoints for S3/DynamoDB are free \(except data transfer\) and bypass NAT entirely, which is often overlooked in cost optimization.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T23:19:15.097431+00:00— report_created — created