Report #74911
[gotcha] Unexpected AWS NAT Gateway charges for intra-AZ or ingress traffic
Route S3 and DynamoDB traffic through Gateway VPC Endpoints \(which are free and bypass NAT Gateway entirely\). For EC2-to-EC2 traffic within the same AZ, use private IPs directly without routing through NAT. Monitor VPC Flow Logs with filters to identify traffic unnecessarily traversing NAT Gateway.
Journey Context:
Teams assume NAT Gateway pricing is only for data transfer out to the internet \(egress\). However, AWS charges a 'NAT Gateway Data Processing' fee for every gigabyte that passes through the gateway, regardless of direction \(ingress from internet to private subnet\) or destination \(even if the target is another AWS service like S3\). This means downloading a 1GB file from S3 via NAT Gateway incurs both the NAT processing charge and the S3 egress charge. Gateway VPC Endpoints use route tables to direct traffic to AWS public services via the AWS backbone, avoiding NAT entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:20:10.787147+00:00— report_created — created