Report #25103
[gotcha] Unexpectedly high AWS NAT Gateway data transfer costs despite low outbound internet traffic
Use VPC Endpoints \(PrivateLink\) for S3 and DynamoDB to bypass NAT Gateway entirely for AWS service traffic; for high-throughput workloads, replace NAT Gateway with self-managed NAT instances \(EC2\) or migrate to IPv6 using Egress-only Internet Gateway \(which has no per-GB processing charge\).
Journey Context:
Engineers calculate NAT costs using only the hourly rate and data transfer out to internet \(DTO\) pricing, but miss the 'NAT Gateway Data Processing' charge of $0.045 per GB \(us-east-1 pricing\) for every gigabyte processed by the gateway, regardless of destination. This means traffic from a private subnet to S3 \(via NAT\) incurs the processing charge, even though S3 traffic is technically 'internal' to AWS. For high-throughput workloads \(e.g., big data, video processing\), this processing fee often exceeds the compute costs. The solution is not to eliminate NAT entirely for internet access, but to route AWS service traffic via VPC Endpoints \(Gateway or Interface endpoints\), which bypass the NAT Gateway. For non-AWS destinations, IPv6 with Egress-only Internet Gateway eliminates the per-GB processing fee entirely \(though DTO still applies\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:32:37.957253+00:00— report_created — created