Submit feedback on
Idle Azure NAT Gateway Attached to Subnet Without Active Workloads
We've received your feedback.
Thanks for reaching out!
Oops! Something went wrong while submitting the form.
Close
Idle Azure NAT Gateway Attached to Subnet Without Active Workloads
Shailaja Beeram
CER:

CER-0319

Service Category
Networking
Cloud Provider
Azure
Service Name
Azure NAT Gateway
Inefficiency Type
Unused Resource
Explanation

Azure NAT Gateways are commonly deployed to provide outbound internet connectivity for resources within virtual network subnets. Over time, the workloads that originally required this outbound access may be scaled down, migrated, or decommissioned entirely. However, the NAT Gateway often remains attached to the subnet — continuing to incur hourly charges even when no active resources are using it. Because billing begins the moment the resource is created and continues for every hour it exists, an idle NAT Gateway generates a steady, fixed cost with zero functional return.

This waste pattern is particularly common in development, testing, and staging environments where infrastructure is provisioned for temporary workloads but networking components are not included in cleanup processes. NAT Gateways are subnet-level networking primitives, often provisioned by platform or infrastructure teams separately from the application teams that use them. This organizational separation creates gaps in ownership and cleanup responsibility, allowing idle gateways to persist unnoticed. Additionally, NAT Gateway has no stopped or paused state — the only way to stop billing is to delete the resource entirely. Even seemingly idle subnets can generate small data processing charges from background processes such as operating system updates or monitoring agents, which may create a misleading appearance of utilization and further delay cleanup.

The cost impact compounds when organizations maintain multiple idle NAT Gateways across subscriptions and environments. Each gateway also typically has an associated public IP address that incurs its own separate hourly charge, adding to the waste.

Relevant Billing Model

Azure NAT Gateway is billed based on two components:

  • Hourly resource charge — billed for every hour the NAT Gateway resource exists, at $0.045 per gateway hour. Partial hours are billed as full hours. This charge applies regardless of whether the gateway has subnets or public IPs attached, or whether any traffic is flowing through it.
  • Data processing charge — billed per gigabyte for both outbound traffic to the internet and inbound return traffic (responses to outbound connections), at $0.045 per GB processed.

Billing starts when the NAT Gateway resource is created and continues until it is deleted — there is no way to pause or stop the resource to halt charges. Public IP addresses associated with the NAT Gateway also incur separate hourly charges. An idle NAT Gateway with no traffic still accumulates the full hourly resource charge continuously.

Detection
  • Identify NAT Gateways that are associated with subnets containing no active compute resources, such as virtual machines, container instances, or other workloads requiring outbound connectivity.
  • Review data processing volumes for each NAT Gateway over a representative period to determine whether meaningful outbound traffic is flowing through the gateway.
  • Assess whether minimal data processing charges on a NAT Gateway are attributable solely to background processes (such as OS updates or monitoring agents) rather than intentional application traffic.
  • Evaluate NAT Gateways in development, testing, and staging environments where workloads may have been decommissioned without corresponding networking cleanup.
  • Confirm with application and platform teams whether the workloads that originally required the NAT Gateway are still active or have been migrated or removed.
  • Examine NAT Gateways that persist in environments that have undergone significant architectural changes, scaling events, or infrastructure restructuring.
Remediation
  • Disassociate the NAT Gateway from all subnets and delete the resource to stop hourly billing — there is no pause or stop state, so deletion is the only way to eliminate charges.
  • Remove any public IP addresses that were exclusively associated with the deleted NAT Gateway to avoid ongoing separate charges for unattached public IPs.
  • Incorporate NAT Gateways and other networking components into application and environment lifecycle processes so they are reviewed and cleaned up whenever workloads are scaled down or decommissioned.
  • Establish periodic networking infrastructure audits to identify NAT Gateways with no meaningful traffic or no active resources in their associated subnets.
  • Implement automated tagging or ownership policies for NAT Gateways so that responsible teams can be identified and notified when gateways appear idle.
Submit Feedback