Home › Decoder › NatGateway-Hours: the fixed monthly cost of each NAT gateway

NatGateway-Hours: the fixed monthly cost of each NAT gateway

NatGateway-Hours is the hourly charge for each NAT gateway that exists in your account, $0.045 per hour in US East (N. Virginia), which is $32.85 for a 730-hour month per gateway whether or not any traffic passes.

In your bill the usage type reads: NatGateway-Hours, USE1-NatGateway-Hours

What it costs

ChargePriceUnit
Each NAT gateway hour (or partial hour)$0.045per hour
One gateway for a 730-hour month (arithmetic)$32.85per month

US East (N. Virginia); other regions differ. Checked 2026-11-04. Sources: AWS VPC pricing, AWS price list file, EC2 offer, us-east-1.

Example with made-up numbers

3 NAT gateways (one per availability zone) x 730 h x $0.045 = $98.55

Add one more in each of 2 extra non-production VPCs: 5 x 730 x $0.045 = $164.25

Each gateway also has a public IPv4 address (see public-ipv4-address-charge): 5 x 730 x $0.005 = $18.25 more

Typical causes

One gateway per AZ, copied into every environment

The recommended high-availability layout is one NAT gateway per availability zone. Repeating it in dev, staging and preview VPCs multiplies a fixed cost that no traffic justifies.

Gateways left from deleted workloads

A VPC or project was wound down but its NAT gateway kept billing hourly.

Gateway in a VPC that no private subnet routes to

A NAT gateway with no route-table entry pointing at it is pure fixed cost.

The fix, step by step

Verify first

Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.

  • List NAT gateways and their VPCs, then check the CloudWatch metrics BytesOutToDestination and ActiveConnectionCount for the last 30 days. Zero traffic and zero connections is a candidate, not proof.
  • Search every route table for a 0.0.0.0/0 route to that nat- ID; if one exists, something depends on it.
  • For non-production, a single NAT gateway shared across AZs lowers the hourly cost but adds cross-AZ data charges (DataTransfer-Regional-Bytes) and removes AZ resilience: decide knowingly.
  • Check infrastructure-as-code (Terraform/CloudFormation) so you do not delete by hand what the next apply recreates.

In the console

  1. VPC console > NAT gateways: sort by VPC, note state and the subnet.
  2. VPC console > Route tables: filter by the nat- ID in Routes to see which subnets use it.
  3. Only for a gateway with no routes and no traffic: select it > Actions > Delete NAT gateway.
  4. Then VPC console > Elastic IPs: the address it used stays allocated (and billed) until released, after you confirm nothing allow-lists it.

With the CLI

aws ec2 describe-nat-gateways --filter Name=state,Values=available --query 'NatGateways[].[NatGatewayId,VpcId,SubnetId]'
aws ec2 describe-route-tables --filters Name=route.nat-gateway-id,Values=nat-EXAMPLE --query 'RouteTables[].RouteTableId'
aws cloudwatch get-metric-statistics --namespace AWS/NATGateway --metric-name BytesOutToDestination --dimensions Name=NatGatewayId,Value=nat-EXAMPLE --start-time 2026-10-04T00:00:00Z --end-time 2026-11-03T00:00:00Z --period 86400 --statistics Sum

Rollback

A deleted NAT gateway cannot be restored; create a new one in the same subnet with an Elastic IP and re-add the 0.0.0.0/0 route. If anything outside allow-lists the old address, a new gateway will have a different one unless you keep the Elastic IP.

Count the gateways in your own bill

Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser and shows how many NAT gateway hours you pay for and what they cost.

See a sample result

Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.

Questions people ask

Do I pay for a NAT gateway that has no traffic?

Yes. AWS charges each NAT gateway hour, or partial hour, while the gateway is available (AWS VPC pricing).

How much is one NAT gateway per month?

$0.045 x 730 hours = $32.85 in US East (N. Virginia), before data processing.

Is one NAT gateway per AZ required?

No. It is the resilient layout, not a requirement. Fewer gateways cost less and trade away resilience and add cross-AZ data charges.

Related

Part of the guide: Reduce AWS NAT Gateway cost: six checks, in order