Report #9904
[gotcha] Unexpected high NAT Gateway data processing costs when accessing S3/DynamoDB from private subnets
Deploy VPC Gateway Endpoints \(S3 and DynamoDB\) in the VPC routing table for the private subnets. This routes traffic to AWS services via the AWS backbone network, bypassing the NAT Gateway entirely. Ensure the routing table has specific prefix list entries for the service \(pl-xxx\) targeting the Gateway Endpoint, taking precedence over the 0.0.0.0/0 NAT route.
Journey Context:
NAT Gateways incur charges per-hour and per-GB data processed. Crucially, 'data processing' includes traffic destined for AWS services like S3 or DynamoDB, even though those services themselves have no data transfer charges from VPC. Teams assume 'S3 is free from VPC' but miss that the NAT tax is applied. The cost can be 4.5¢/GB or more. The alternative, VPC Gateway Endpoints, is free \(no hourly charge, no data processing charge\) and more performant \(private backbone, no NAT bottleneck\). However, it requires routing table modifications and only supports S3/DynamoDB \(not all services; Interface Endpoints are for others but cost money\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:20:36.317336+00:00— report_created — created