Report #13149
[gotcha] Unexpected $10k\+ NAT Gateway data processing charges despite using S3 for large data transfers
Deploy VPC Gateway Endpoints for S3 and DynamoDB \(free\), and ensure route tables explicitly route the S3 prefix list \(\`pl-xxxxxx\`\) to the Gateway Endpoint ID \(\`vpce-xxxxx\`\) instead of \`0.0.0.0/0\` to the NAT Gateway; audit with VPC Flow Logs filtered for \`dstport=443\` and \`dstaddr\` in S3 IP ranges via NAT
Journey Context:
Without a Gateway Endpoint, S3 traffic from a private subnet exits via the NAT Gateway. NAT Gateway charges ~$0.045/GB for data processing \*per GB\*, regardless of S3's cheap egress. A data pipeline moving 100TB/month incurs $4,500 in NAT fees alone, invisible in S3 billing. Gateway Endpoints are free and keep traffic on the AWS backbone, but Route Tables prioritize the most specific route; if \`0.0.0.0/0\` points to NAT and the S3 prefix list route is missing or misconfigured, traffic leaks to NAT silently.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T17:51:50.151400+00:00— report_created — created