Report #83649
[gotcha] Unexpected high data transfer costs when accessing S3 from private subnet via NAT Gateway
Create Gateway VPC Endpoints for S3 and DynamoDB \(specifically these two support Gateway endpoints\); route table entries must target the endpoint, not the NAT Gateway. For other services, use Interface VPC Endpoints \(PrivateLink\).
Journey Context:
NAT Gateway charges per-GB 'data processing' fees for all traffic traversing it, regardless of whether the destination is on the internet or within AWS. Teams often route S3 traffic through NAT to reach the public S3 endpoint, incurring ~$0.045/GB processing fees on top of S3 request costs. Gateway VPC Endpoints are free \(except standard S3 charges\) and keep traffic on the AWS backbone, bypassing the NAT entirely. This is a purely financial/architectural gotcha, not a functional one.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T22:59:31.706538+00:00— report_created — created