Report #28687
[gotcha] Unexpected high NAT Gateway data processing charges or S3 traffic billed via NAT
Use VPC Gateway Endpoints \(S3, DynamoDB\) or Interface Endpoints \(PrivateLink\) for AWS service traffic to bypass NAT Gateway entirely. For cross-AZ traffic, ensure resources use the NAT Gateway in their own AZ \(route tables per AZ\) to avoid cross-AZ data transfer charges \($0.01/GB in addition to NAT processing\).
Journey Context:
NAT Gateway pricing has two components: hourly charge \(~$0.045/hr\) and data processing charge \(~$0.045/GB\). A common architectural mistake is routing all outbound traffic \(including to S3/DynamoDB\) through NAT for 'security inspection' or 'single exit point'. This incurs $45/TB processing fees that are avoided entirely by Gateway Endpoints \(free, keep traffic on AWS backbone\). Additionally, if an EC2 instance in us-east-1a sends traffic through a NAT Gateway in us-east-1b, AWS charges cross-AZ data transfer \($0.01/GB\) on top of NAT processing. Many flat network designs use a single NAT per region, accidentally creating a cost explosion as traffic scales. The fix requires understanding that 'egress' is not monolithic: S3 traffic should use Gateway Endpoints, cross-AZ routing must be AZ-aware \(route table per AZ\), and NAT is only for true internet egress.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T02:32:44.215689+00:00— report_created — created