AWS NAT Gateway Cost: 2026 Pricing + 8 Ways to Cut It
AWS NAT Gateway Cost: The Complete 2026 Guide to Pricing and Cutting Your Bill
TL;DR - In US East (N. Virginia), an AWS NAT Gateway costs $0.045/hour (~$32.85/month) plus $0.045 per GB of data processed, plus $0.005/hour (~$3.60/month) for its public IPv4 address. A single production setup across 3 Availability Zones starts near $98/month before a byte of traffic moves. Most of that bill is avoidable. This guide shows the exact math, how to find NAT charges in your bill, and eight proven ways to cut them.
How AWS NAT Gateway pricing works
Every NAT Gateway bill is built from three separate charges:
- Hourly charge - you pay for each hour the gateway exists, whether it moves traffic or not. In us-east-1 that's $0.045/hour, about $32.85/month per gateway. Other regions run higher ($0.045–$0.093/hour).
- Data processing charge - $0.045 per GB of data that passes through the gateway, in either direction, regardless of source or destination.
- Public IPv4 charge - since February 2024 AWS bills $0.005/hour (~$3.60/month) for the public IP attached to each gateway.
There is no free tier for NAT Gateways. The clock starts the moment you provision one.
Real monthly cost examples
| Scenario | Hourly | Data | IPv4 | Monthly total |
|---|---|---|---|---|
| Dev, 1 gateway, 50 GB | $32.85 | $2.25 | $3.60 | ~$38.70 |
| Prod, 1 gateway, 500 GB | $32.85 | $22.50 | $3.60 | ~$58.95 |
| Prod HA, 3 AZ, 2 TB total | $98.55 | $92.16 | $10.80 | ~$201.51 |
| High-traffic, 3 AZ, 20 TB | $98.55 | $921.60 | $10.80 | ~$1,030.95 |
The pattern: at low traffic the fixed hourly + IPv4 cost dominates; at high traffic data processing takes over. Your optimization strategy depends on which side you're on.
Why is the NAT Gateway "so expensive"?
Two architectural traps, not the base rate:
- Cross-AZ data transfer. Route traffic from an instance in AZ-a through a NAT Gateway in AZ-b and you pay cross-AZ transfer on top of the $0.045/GB processing fee. Sharing one gateway across AZs to "save money" often costs more.
- Chatty internal traffic sent to the internet. Services polling S3, DynamoDB, ECR, or other AWS APIs over the public path get charged $0.045/GB - even though that traffic never needed to leave AWS's network.
Hidden costs to watch
- Public IPv4 - $3.60/month per gateway, easy to forget across many VPCs.
- Cross-AZ - silent multiplier on shared-gateway designs.
- Data Transfer Out (DTO) to the internet - billed separately from NAT processing.
How to find NAT Gateway cost in your bill (most guides skip this)
You can't cut what you can't see. Two line items reveal everything:
RegionCode-NatGateway-Hours- your fixed hourly + count of gateways. High here = too many idle gateways.RegionCode-NatGateway-Bytes- your data-processing spend. High here = chatty traffic to fix with endpoints.
Cost Explorer path: filter Service = EC2 - Other, then Group by → Usage Type, search NatGateway. Split Hours vs Bytes to instantly see whether your problem is too many gateways or too much traffic.
In the CUR, filter line_item_usage_type LIKE '%NatGateway%'. If NatGateway-Bytes is near $0 but NatGateway-Hours is high (a real pattern from AWS re:Post: $223 Hours / $0.00 Bytes), you're paying for idle gateways - delete them.
8 ways to reduce AWS NAT Gateway cost
- Add Gateway VPC Endpoints for S3 and DynamoDB - free. Traffic bypasses NAT entirely, killing the $0.045/GB fee for that traffic.
- Add Interface (PrivateLink) Endpoints for ECR, CloudWatch, SSM, Secrets Manager, etc. Costs ~$0.01/hour + $0.01/GB - cheaper than NAT once volume is meaningful (see break-even below).
- Fix resource placement so instances use the NAT Gateway in their own AZ. Kills cross-AZ fees.
- Delete idle gateways - dev/test environments don't need 24/7 NAT. Shutting down off-hours saves ~67%.
- Consolidate low-traffic VPCs behind one gateway (where cross-AZ math allows) via Transit Gateway.
- Use a NAT instance or
fck-natfor low/medium traffic - a small EC2-based NAT can cost a few dollars a month vs $32.85. - Adopt IPv6 + Egress-Only Internet Gateway - no hourly and no data-processing charge.
- Alert on spikes - wire NAT spend into AWS Cost Anomaly Detection so a runaway chatty service doesn't surprise you at month-end.
VPC endpoint break-even math
An Interface Endpoint (~$7.20/month + $0.01/GB) beats NAT ($0.045/GB) once you push enough traffic to that service. Ignoring the flat fee, the per-GB saving is $0.035/GB, so the endpoint pays for its $7.20 base at about ~205 GB/month of that service's traffic. Above that, every GB saves money. For S3/DynamoDB use the Gateway endpoint instead - it's free, so it always wins.
NAT Gateway vs the alternatives (2026)
| Option | Best for | ~Monthly base | Data cost | Trade-off |
|---|---|---|---|---|
| NAT Gateway | Prod, HA, high traffic | $32.85/AZ | $0.045/GB | Managed, pricey |
| NAT instance / fck-nat | Low/med traffic, cost-sensitive | ~$3–5 | EC2 DTO only | You manage it, no auto-HA |
| Egress-Only IGW (IPv6) | IPv6 workloads | $0 | $0 | Requires IPv6 |
| Gateway VPC Endpoint | S3 / DynamoDB | $0 | $0 | Those services only |
Monitoring so it never creeps back
Set a Cost Anomaly Detection monitor scoped to the NatGateway usage types, and a budget alert on EC2-Other. A single mis-deployed container polling an API can add hundreds in data processing in days - catch it early.
FAQ
Why is the NAT Gateway so expensive? The base rate is modest; cost explodes from data-processing fees on chatty internal traffic and cross-AZ transfer when instances use a gateway in another Availability Zone. Route AWS-service traffic through VPC endpoints and keep traffic in-AZ to slash it.
Is NAT Gateway free in the AWS Free Tier? No. There is no free tier. You pay per NAT Gateway-hour plus per GB processed from the moment it's provisioned.
How much is a NAT Gateway per month? About $32.85/month in us-east-1 for the hourly charge alone, plus $0.045/GB of traffic and ~$3.60/month for the public IPv4 address. A single low-traffic gateway lands near $38–40/month.
How do I reduce AWS NAT Gateway cost? Add VPC endpoints for AWS services, keep traffic in-AZ, delete idle gateways in non-prod, consider NAT instances or IPv6 egress-only gateways for light workloads, and alert on spend spikes.
How do I see NAT Gateway charges in my bill? In Cost Explorer filter Service = "EC2 - Other" and group by Usage Type; look for NatGateway-Hours (idle gateways) and NatGateway-Bytes (traffic). Same via line_item_usage_type LIKE '%NatGateway%' in the CUR.
NAT Gateway vs NAT instance - which is cheaper? For low-to-medium traffic a small NAT instance or fck-nat is far cheaper than a managed NAT Gateway. For production HA and high throughput, the managed NAT Gateway is worth the premium.