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.
(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 item | AWS NAT Gateway | Azure NAT Gateway | Google Cloud NAT |
|---|---|---|---|
| Gateway hourly fee | USD 0.045/hour | USD 0.045/hour (Standard) | Up to 32 VMs: USD 0.0014/VM-hour; above 32: USD 0.044/hour |
| Data processing | USD 0.045/GB | USD 0.045/GB | USD 0.045/GiB |
| Public IPv4 | USD 0.005/hour (in-use/idle) | USD 0.005/hour (Standard, eastus) | USD 0.005/hour (static/ephemeral external IP) |
| Resource model | AZ-level, usually one per AZ | Regional, associated with subnets | Regional, priced per VM |
| Unit | GB (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 volume | AWS NAT | Azure NAT | GCP Cloud NAT (10 VMs) | GCP difference |
|---|---|---|---|---|
| 1TB | about 82.58 | about 82.58 | about 55.78 | -26.80 |
| 10TB | about 497.30 | about 497.30 | about 432.96 | -64.34 |
| 100TB | about 4,644.50 | about 4,644.50 | about 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.
| VMs | AWS/Azure hourly | GCP hourly | GCP monthly | AWS/Azure monthly |
|---|---|---|---|---|
| 10 | 0.045 | 0.014 | 10.22 | 32.85 |
| 32 | 0.045 | 0.0448 | 32.70 | 32.85 |
| 50 | 0.045 | 0.044 | 32.12 | 32.85 |
| 100 | 0.045 | 0.044 | 32.12 | 32.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 item | Trigger | Control |
|---|---|---|
| Multi-AZ gateways | One NAT per AZ on AWS | Choose shared vs per-AZ; check hourly multiplier |
| Cross-AZ traffic | NAT and workload in different AZs | Same-AZ deployment; check cross-AZ rate |
| Internet egress | Accessing the internet via NAT | CDN/private endpoints/egress consolidation |
| Idle IPs | Public IPv4 not attached to resources | Release; AWS/Azure charge for idle IPs |
| NAT logs | Flow logs/log collection | Enable on demand; set retention |
| Private endpoints | PrivateLink/Private Service Connect instead of NAT | Compare 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.
| Scenario | Prefer | Check first |
|---|---|---|
| Up to 32 VMs, single region | GCP per-VM pricing | VM count, NAT gateway count |
| Above 32 VMs, steady traffic | AWS/Azure flat hourly fee | AZ count, processing volume |
| Multi-AZ high availability | Per-AZ NAT vs shared NAT | Hourly multiplier, cross-AZ fees |
| Heavy same-cloud storage/database access | Private endpoints/PrivateLink | Endpoint fee vs NAT processing |
| IPv6 available | IPv6/egress-only | Compatibility, 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.
| Phase | Action | Output |
|---|---|---|
| Weeks 1-2 | Inventory NAT gateways, AZs, subnets, IPs and monthly GB/GiB | NAT asset list, bill baseline |
| Weeks 2-3 | Tag by business/team and allocate cost | Cost allocation table |
| Weeks 3-5 | Assess per-AZ vs shared NAT, cross-AZ traffic | Architecture options, hourly comparison |
| Weeks 5-7 | Move same-cloud storage/database traffic to private endpoints | Endpoint list, savings estimate |
| Weeks 6-8 | Release idle public IPs; assess IPv6/egress-only | IP cleanup record, IPv6 plan |
| Weeks 8-10 | Set alerts for processing/hourly fee/idle IPs | Dashboard, alert rules |
| Weeks 10-12 | Review savings and risk; update budget | Savings 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.