Report #98276
[gotcha] AWS NAT Gateway bill is unexpectedly high for intra-VPC or cross-AZ traffic
Keep private subnets in the same AZ as their NAT Gateway, use VPC endpoints for S3/DynamoDB and interface endpoints for other AWS services, and avoid routing same-VPC traffic through NAT when a direct path exists.
Journey Context:
NAT Gateway charges per-GB data processing in each direction, even for traffic that never leaves the VPC or crosses an availability boundary. A common 'one NAT Gateway per VPC' design funnels all cross-AZ traffic through it and inflates the bill. VPC endpoints bypass NAT entirely for supported services; co-locating subnets with their NAT Gateway avoids cross-AZ data charges. For heavy non-AWS egress a NAT instance can be cheaper.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-27T04:41:56.117699+00:00— report_created — created