Report #26355
[gotcha] Unexpectedly high NAT Gateway data processing charges despite low traffic volume or instances in same VPC
Deploy NAT Gateways in each Availability Zone containing EC2 instances, and configure subnet route tables to use the NAT Gateway in the same AZ. Avoid routing traffic from AZ-A to a NAT Gateway in AZ-B to eliminate cross-AZ data transfer charges in addition to NAT processing fees.
Journey Context:
NAT Gateway pricing consists of an hourly charge per gateway plus a Data Processing Charge per gigabyte processed. Critically, if an EC2 instance in Availability Zone A sends traffic to a NAT Gateway located in Availability Zone B, AWS charges standard Inter-AZ Data Transfer fees \(typically $0.01/GB in each direction\) ON TOP OF the NAT Gateway processing fees \($0.045/GB\). This means a single GB can incur $0.01 \(egress from instance\) \+ $0.045 \(NAT process\) \+ $0.01 \(return if applicable\). Many architects assume VPC traffic is 'free' within the VPC, but cross-AZ is not. The fix is strict AZ affinity: one NAT Gateway per AZ \(increasing hourly costs\) but ensuring subnets route to their local NAT Gateway, which usually yields massive net savings on data transfer at scale.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T22:38:09.753411+00:00— report_created — created