Direct answer: using verifiable official prices retrieved on 8 November 2026 (AWS us-east-1 / Azure Global / Google Cloud public prices, USD, pay-as-you-go, excluding tax and discounts), all three NAT gateways charge USD 0.045/GB for data processing (Google Cloud charges 0.045/GiB), and public IPv4 is USD 0.005/hour (about USD 3.65/month per address). The difference is the gateway hourly fee: AWS NAT Gateway and Azure NAT Gateway are USD 0.045/hour; Google Cloud NAT charges USD 0.0014 per VM-hour for up to 32 VMs (10 VMs = USD 0.014/hour), capped at USD 0.044/hour above 32 VMs. For 10 VMs, one public IP and 730 hours/month: at 1TB, AWS/Azure is about USD 83/month and GCP about USD 56/month; at 10TB, about USD 497 vs 433/month; at 100TB, about USD 4,645 vs 4,205/month. As data volume grows, the USD 0.045/GB processing fee dominates and the hourly difference is diluted.

This guide is for cloud networking, FinOps, platform architecture and procurement teams comparing AWS NAT Gateway, Azure NAT Gateway and Google Cloud NAT on pay-as-you-go cost, with a 1/10/100TB TCO and an optimisation checklist. Prices come from the AWS VPC pricing page, the Azure NAT Gateway pricing page, the Azure Retail Prices API (serviceName=NAT Gateway, Virtual Network; eastus/Global) and the Google Cloud NAT pricing page (all accessed 8 November 2026). Official price facts, editorial calculations and excluded items are kept separate.

Three rules to remember

(1) A NAT gateway bill is hourly fee + per-GB/GiB processing + public-IP hourly fee; many teams count the hourly fee and miss the USD 0.045/GB processing charge. (2) GCP's NAT hourly fee is per VM (up to 32), so it is cheaper at small scale; AWS/Azure use a flat hourly fee, which suits larger estates. (3) At 100TB, processing is over 90% of the bill; optimisation should shift from "change the gateway" to "reduce traffic through NAT" (private endpoints, IPv6, same-AZ access).

Scope: hourly fee, processing fee and IP fee are separate

A NAT gateway bill usually has three parts: the gateway hourly fee (per gateway/AZ/VM), the data processing fee (per GB or GiB, inbound and outbound), and the public IP hourly fee (static/ephemeral external IPs used by NAT). Unit prices are close, but the billing units and resource models differ: AWS/Azure use GB (109 bytes), GCP uses GiB (230 bytes); AWS NAT Gateway is an AZ-level resource (usually one per AZ); Azure NAT Gateway is a regional resource associated with subnets; GCP Cloud NAT is a regional resource priced per VM. This article converts 1TB = 1,000GB = 931.32GiB to avoid unit confusion.

Billing itemAWS NAT GatewayAzure NAT GatewayGoogle Cloud NAT
Gateway hourly feeUSD 0.045/hourUSD 0.045/hour (Standard)Up to 32 VMs: USD 0.0014/VM-hour; above 32: USD 0.044/hour
Data processingUSD 0.045/GBUSD 0.045/GBUSD 0.045/GiB
Public IPv4USD 0.005/hour (in-use/idle)USD 0.005/hour (Standard, eastus)USD 0.005/hour (static/ephemeral external IP)
Resource modelAZ-level, usually one per AZRegional, associated with subnetsRegional, priced per VM
UnitGB (109)GB (109)GiB (230)

Sources: AWS VPC pricing page (NAT Gateway and Public IPv4), Azure NAT Gateway pricing page and Azure Retail Prices API (serviceName=NAT Gateway, Virtual Network; Global/eastus), Google Cloud NAT pricing page (accessed 8 November 2026). Rates are retail/pay-as-you-go and exclude tax, discounts, bandwidth/egress and logging; the official invoice governs.

TCO: 10 VMs, one IP, 730 hours/month

Assume 10 VMs, one public IP, 730 hours/month and 1/10/100TB of processed data: the gateway hourly fee is USD 32.85/month for AWS/Azure and USD 10.22/month for GCP; the IP fee is USD 3.65/month for all; data processing is USD 0.045/GB for AWS/Azure and USD 0.045/GiB for GCP, converting 1TB to 931.32GiB. The result: at 1TB, AWS/Azure is about USD 82.58/month and GCP about USD 55.78/month; at 10TB, about USD 497.30 vs 432.96/month; at 100TB, about USD 4,644.50 vs 4,204.81/month. GCP's hourly advantage at 10 VMs is about 27% at 1TB; by 100TB the gap narrows to about 9.5% because processing dominates.

Monthly volumeAWS NATAzure NATGCP Cloud NAT (10 VMs)GCP difference
1TBabout 82.58about 82.58about 55.78-26.80
10TBabout 497.30about 497.30about 432.96-64.34
100TBabout 4,644.50about 4,644.50about 4,204.81-439.69

Editorial calculation: gateway hourly fee = hourly rate x 730; IP = 1 x 0.005 x 730; processing: AWS/Azure = GB x 0.045, GCP = GiB x 0.045 (1TB = 931.32GiB); 10 VMs. Excludes cross-AZ/egress, logging, tax and discounts; the invoice governs.

Gateway hourly fee: VM count decides whether GCP is cheaper

GCP Cloud NAT prices its hourly fee by the number of VMs using the gateway: USD 0.0014/VM-hour up to 32 VMs, then a flat USD 0.044/hour. AWS/Azure charge a flat USD 0.045/hour (AWS also per AZ). So at 10 VMs, GCP's hourly fee is about 31% of AWS/Azure; at 32 VMs it is essentially equal (0.0448 vs 0.045); at 50 VMs GCP is slightly lower (0.044 vs 0.045). "GCP NAT is cheaper" therefore holds at small/medium scale; above 32 VMs the hourly fees are almost identical and the difference shifts to processing and architecture.

VMsAWS/Azure hourlyGCP hourlyGCP monthlyAWS/Azure monthly
100.0450.01410.2232.85
320.0450.044832.7032.85
500.0450.04432.1232.85
1000.0450.04432.1232.85

Sources/calculation: Google Cloud NAT pricing page (up to 32 VMs: 0.0014/VM-hour; above 32: 0.044/hour); AWS/Azure 0.045/hour; monthly = hourly x 730. AWS per-AZ gateway multiplication is not included here (see the next table).

Multi-AZ and hidden items: why the bill exceeds "unit price x traffic"

The easiest items to miss are multi-AZ duplication and extra traffic. AWS NAT Gateway is an AZ-level resource; for multi-AZ high availability you usually run one gateway per AZ, so the hourly fee multiplies (3 AZs = 3 x USD 0.045/hour). Azure/GCP have different resource models, so do not simply multiply by three, but still check cross-AZ, cross-region, egress and logging charges. Public IPv4 is billed at USD 0.005/hour whether in use or idle on AWS/Azure; GCP charges USD 0.005/hour for the external IPs used by NAT. Cross-AZ traffic, internet egress, NAT logs and private endpoints are separate.

Hidden itemTriggerControl
Multi-AZ gatewaysOne NAT per AZ on AWSChoose shared vs per-AZ; check hourly multiplier
Cross-AZ trafficNAT and workload in different AZsSame-AZ deployment; check cross-AZ rate
Internet egressAccessing the internet via NATCDN/private endpoints/egress consolidation
Idle IPsPublic IPv4 not attached to resourcesRelease; AWS/Azure charge for idle IPs
NAT logsFlow logs/log collectionEnable on demand; set retention
Private endpointsPrivateLink/Private Service Connect instead of NATCompare endpoint fee vs NAT processing

Editorial synthesis; specific cross-AZ/egress/logging rates follow AWS/Azure/GCP official pricing pages and invoices. Tax, discounts and support plans are not included.

How to choose: by VM scale, AZ requirements and traffic path

Start with four questions: how many VMs, is multi-AZ required, how much traffic goes through NAT each month, and can private endpoints/IPv6 bypass NAT. At small scale (up to 32 VMs), a single region and modest traffic, GCP's per-VM hourly fee is cheaper; at large scale or in an existing multi-AZ architecture, the hourly fees are close, so focus on processing and architecture; if workloads mainly access same-cloud storage/databases, use VPC endpoints/private links to keep traffic out of NAT; if multi-AZ is mandatory, include AWS's per-AZ gateway hourly fee, while Azure/GCP should be checked against their actual resource models.

ScenarioPreferCheck first
Up to 32 VMs, single regionGCP per-VM pricingVM count, NAT gateway count
Above 32 VMs, steady trafficAWS/Azure flat hourly feeAZ count, processing volume
Multi-AZ high availabilityPer-AZ NAT vs shared NATHourly multiplier, cross-AZ fees
Heavy same-cloud storage/database accessPrivate endpoints/PrivateLinkEndpoint fee vs NAT processing
IPv6 availableIPv6/egress-onlyCompatibility, dual-stack cost

Editorial selection framework, not a vendor recommendation; validate against availability, compliance, network architecture and actual invoices.

90-day optimisation checklist

Use the first 90 days to establish the NAT gateway inventory, AZ distribution, IP count, monthly processing volume and who is using NAT. The order is: inventory, attribution/tagging, architecture optimisation, cleanup, monitoring.

PhaseActionOutput
Weeks 1-2Inventory NAT gateways, AZs, subnets, IPs and monthly GB/GiBNAT asset list, bill baseline
Weeks 2-3Tag by business/team and allocate costCost allocation table
Weeks 3-5Assess per-AZ vs shared NAT, cross-AZ trafficArchitecture options, hourly comparison
Weeks 5-7Move same-cloud storage/database traffic to private endpointsEndpoint list, savings estimate
Weeks 6-8Release idle public IPs; assess IPv6/egress-onlyIP cleanup record, IPv6 plan
Weeks 8-10Set alerts for processing/hourly fee/idle IPsDashboard, alert rules
Weeks 10-12Review savings and risk; update budgetSavings report, next-round plan

Editorial optimisation advice, not an official template; architecture, network and security requirements follow enterprise standards and vendor documentation.

FAQ

How is a NAT gateway billed?

Usually three parts: the gateway hourly fee (AWS/Azure USD 0.045/hour; GCP USD 0.0014/VM-hour up to 32 VMs, USD 0.044/hour above), data processing (USD 0.045/GB; GCP 0.045/GiB), and the public IP hourly fee (USD 0.005/hour). Inbound and outbound data are both processed.

Why is GCP cheaper at 10 VMs?

Because GCP Cloud NAT prices the hourly fee by VM count: 10 VMs = 0.0014 x 10 = USD 0.014/hour, while AWS/Azure charge a flat USD 0.045/hour. At 32 VMs they are essentially equal (0.0448 vs 0.045), and above 32 GCP caps at 0.044, so the gap is small.

How much does public IPv4 cost?

AWS, Azure Standard and GCP external IPs are all USD 0.005/hour, about USD 3.65/month per address. AWS/Azure also charge for idle IPs; GCP charges for the external IPs used by NAT. A large pool of unused IPs creates a "hidden" monthly fee.

How is cross-AZ traffic charged?

Cross-AZ traffic usually has a separate data transfer charge, on top of NAT hourly/processing fees. AWS commonly charges USD 0.01/GB in each direction (depending on region/service); Azure/GCP have their own rules. Keeping NAT and workloads in the same AZ can avoid this.

Are idle IPs charged?

AWS charges USD 0.005/hour for both in-use and idle public IPv4; Azure Standard public IPs are also hourly; GCP charges USD 0.005/hour for external IPs used by NAT. Releasing unattached IPs is one of the simplest savings actions.

Do we need one NAT gateway per AZ?

AWS NAT Gateway is an AZ-level resource; for multi-AZ high availability you usually run one per AZ, multiplying the hourly fee. Azure NAT Gateway and GCP Cloud NAT have different resource models, so do not simply multiply by three; check availability requirements and actual architecture.

What dominates at 100TB?

Data processing. At USD 0.045/GB (GCP 0.045/GiB), 100TB costs about USD 4,608 in processing (GCP about USD 4,191 at 931.32GiB/TB), while the gateway hourly fee is only about USD 32/month. Optimisation should focus on reducing traffic through NAT, not changing the gateway.

How can we optimise NAT cost?

Move same-cloud storage/database access to private endpoints/PrivateLink; consolidate NAT where possible; release idle IPs; assess IPv6/egress-only; keep NAT and workloads in the same AZ; alert on processing volume and idle IPs; tag by team for cost allocation.

Research method and limitations

This article separates "official price facts" from "editorial calculations": AWS NAT Gateway USD 0.045/hour, USD 0.045/GB and public IPv4 USD 0.005/hour come from the AWS VPC pricing page; Azure NAT Gateway USD 0.045/hour, USD 0.045/GB and Standard public IP USD 0.005/hour come from the Azure NAT Gateway pricing page and Azure Retail Prices API (Global/eastus); GCP Cloud NAT USD 0.0014/VM-hour (up to 32 VMs), USD 0.044/hour (above 32), USD 0.045/GiB and external IP USD 0.005/hour come from the Google Cloud NAT pricing page (accessed 8 November 2026). TCO, unit conversion and the 90-day list are editorial calculations/advice.

Eight limitations: (1) only public pay-as-you-go prices are used, excluding tax, enterprise/commit discounts and support plans; (2) cross-AZ/cross-region/internet egress, NAT logging and private endpoints are not included; (3) the scenario assumes 10 VMs, one public IP and 730 hours/month; (4) GCP bills in GiB and this article converts 1TB to 931.32GiB, so actual invoices may differ slightly; (5) no network performance/availability testing was performed; (6) prices change and should be re-queried after publication; (7) self-managed NAT instances and third-party firewalls are not covered; (8) this is not procurement, commercial or legal advice.

Sources and basis

  • AWS, Amazon VPC pricing (NAT Gateway, Public IPv4): aws.amazon.com/vpc/pricing/. NAT Gateway USD 0.045/hour and USD 0.045/GB; public IPv4 USD 0.005/hour in-use/idle. Accessed 8 November 2026.
  • Microsoft, Azure NAT Gateway pricing: azure.microsoft.com/en-us/pricing/details/azure-nat-gateway/. Standard gateway USD 0.045/hour, data processing USD 0.045/GB; StandardV2 logging fee. Accessed 8 November 2026.
  • Microsoft, Azure Retail Prices API (serviceName=NAT Gateway / Virtual Network, Global/eastus): prices.azure.com/api/retail/prices. NAT Gateway USD 0.045/hour and USD 0.045/GB; Standard IPv4 public IP USD 0.005/hour. Accessed 8 November 2026.
  • Google Cloud, Cloud NAT pricing: cloud.google.com/nat/pricing. Up to 32 VMs USD 0.0014/VM-hour; above 32 VMs USD 0.044/hour; USD 0.045/GiB; external IP USD 0.005/hour. Accessed 8 November 2026.

Data cut-off 8 November 2026; prices and specifications follow AWS/Azure/GCP official pages/APIs and the invoice; not procurement, commercial or legal advice.

Turn NAT gateways, public IPs and traffic paths into a checkable budget

Bring NAT gateway/AZ inventory, VM count, monthly processing volume, public IP count, private-endpoint plans and egress paths; we turn cloud network cost into a checkable budget.

Book a cloud network cost review