Report #9094
[gotcha] Unexpected NAT Gateway data processing charges for S3/DynamoDB traffic or cross-AZ traffic
Create Gateway VPC Endpoints for S3 and DynamoDB to bypass NAT Gateway entirely, and ensure subnets are aligned with NAT Gateways in the same AZ to avoid cross-AZ data transfer costs.
Journey Context:
NAT Gateways charge per-gigabyte for data processing, including traffic destined for AWS public services like S3 or DynamoDB if routed through the NAT Gateway. Without VPC Endpoints, this traffic flows from the private subnet → NAT Gateway → public internet → S3, incurring NAT processing fees and potentially internet egress fees. Gateway VPC Endpoints \(free, horizontally scaled\) route traffic directly from the VPC to S3/DynamoDB via the AWS backbone, never touching the NAT Gateway or internet. Additionally, if a subnet in AZ-1 uses a NAT Gateway in AZ-2, AWS charges for cross-AZ data transfer \(per-GB\) on top of the NAT processing fee. The fix is strict AZ affinity: each private subnet must route to a NAT Gateway in the same AZ.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:16:37.450383+00:00— report_created — created