AWS vs GCP vs Azure Costs: Comparing Pricing Mechanics
Per-hour list prices change over time and differ by region. The rules around them, such as increments, discounts, fees and what bills while stopped, decide your real cost.
A fair AWS, Google Cloud and Azure cost comparison compares pricing mechanics, not a single hourly rate. List prices change, vary by region and machine family, and are published on each provider’s calculator. What differs structurally, and what this page covers, is how each provider meters usage, which discounts it applies automatically versus in return for a commitment, what spare-capacity pricing looks like, what the Kubernetes control plane costs, and what keeps billing after you stop a machine. Every figure below is taken from the provider’s own documentation.
Billing increments
| AWS EC2 | Google Compute Engine | Azure VMs | |
|---|---|---|---|
| Increment | per second for Linux, Windows, RHEL and Ubuntu Pro; SLES billed per full hour | per second after the first minute | see the Azure VM pricing page |
| Minimum | 60 seconds | 1 minute | see the Azure VM pricing page |
| Compute billing stops when | the instance is stopped or terminated | the instance reaches STOPPING (an idle but RUNNING VM is still charged) | the VM is deallocated (a guest-OS “Stopped” VM is still billed) |
The Azure row is the one that trips people up: shutting a VM down from inside Windows or Linux leaves it in a billed state. See on-demand pricing for the detail.
Discount programs
| Mechanism | AWS | Google Cloud | Azure |
|---|---|---|---|
| Resource commitment (1 or 3 years) | Reserved Instances | resource-based CUDs: up to 55%, or up to 70% on memory-optimized series | Reservations: up to 72% vs pay-as-you-go |
| Spend commitment (1 or 3 years) | Savings Plans: Compute up to 66%, EC2 Instance up to 72% | spend-based CUDs, including compute flexible commitments | savings plan for compute and for databases |
| License reuse | n/a in this comparison | n/a in this comparison | Azure Hybrid Benefit for Windows Server, which requires licenses with active Software Assurance or qualifying subscriptions |
Google Cloud also applies sustained use discounts automatically to eligible machine series (N1, N2, N2D, C2, M1, M2 and sole-tenant nodes; E2 is not on the list) used for more than 25% of a month, reaching up to 30% for a full month on N1, M1 and M2 and up to 20% on N2, N2D and C2; SUDs do not apply to usage already covered by a CUD. Every commitment program on every cloud bills for its term whether or not the capacity runs, which is why commitments belong on always-on capacity; see scheduling vs reserved instances.
Spare capacity
AWS Spot Instances are “available at a discount of up to 90% off compared to On-Demand pricing” with a two-minute interruption notice. Google Spot VMs offer “up to 91%” off on-demand for many machine types, with a preemption notice followed by a shutdown period of up to 30 seconds. Azure Spot VMs have no SLA and give up to 30 seconds’ notice through Scheduled Events. Details are in spot instances.
Kubernetes control plane fees
- Amazon EKS: $0.10 per cluster per hour while the Kubernetes version is in standard support, and $0.60 per cluster per hour in extended support.
- GKE: a flat cluster management fee of $0.10 per cluster per hour, with a free tier of $74.40 in monthly credits per billing account, equivalent to one zonal Standard or Autopilot cluster.
- AKS: the Free tier has free cluster management but no financially backed uptime SLA; the Standard tier adds an uptime SLA at $0.10 per cluster per hour (Azure Retail Prices, East US), and the Premium tier adds Long Term Support on top.
Worker node costs, which these fees do not include, are covered in Kubernetes cost optimization.
Network transfer
Inbound transfer from the internet is free on Google Cloud and Azure: Azure lists data transfer in as free, and Google charges nothing for inbound data transfer (it notes that services which process inbound traffic, such as load balancers and Cloud NAT, may still charge). AWS gives 100 GB of data transfer out to the internet free each month, aggregated across services and Regions. Outbound rates beyond that are tiered and region-specific on all three, so check the current price pages rather than a comparison table.
What bills while stopped
On all three, stopping compute does not stop storage. AWS states that EBS volumes and Elastic IP addresses “incur charges regardless of the instance’s state.” Google says you “keep incurring charges for any resources that remain attached” to a stopped instance. Microsoft notes that disks and networking continue to incur charges on a deallocated VM.
Comparing your own estate
Because the mechanics differ, the cheapest cloud depends on the workload’s shape: how many hours it runs, whether it can be interrupted, and whether it can commit. ZopNight discovers resources and costs across AWS, GCP and Azure in one inventory, shows spend by provider and by region, and prices resources from AWS Pricing, the Google Cloud Billing Catalog and Azure Retail Prices or from billed cost where billing sync is on, which gives you a like-for-like view of what you actually run on each. For a cross-cloud plan, see multi-cloud cost strategy.