Advertisement

Cloud · cloud-cost, aws, azure, google-cloud, finops

What the same workload costs on AWS, Azure and Google Cloud

List prices decide almost nothing. Commitment length, upfront payment, egress paths, control-plane fees and log volume decide the bill, and the ranking changes with the shape of the workload.

What the same workload costs on AWS, Azure and Google Cloud Cloud

Key points

  • AWS advertises up to 72% off compute with EC2 Instance Savings Plans, Azure up to 72% with reservations, Google up to 57% with three-year resource-based commitments.
  • EKS and GKE charge about $0.10 per cluster-hour; the AKS free tier charges nothing for cluster management and gives up the backed uptime SLA.
  • Ingress is free everywhere and cross-zone traffic is billed in both directions, so egress paths shape architecture as much as unit rates do.

Five line items decide the bill

A cloud bill for one workload breaks into five lines: compute hours, data transfer, object storage and requests, managed-service hours and volumes such as the Kubernetes control plane, a database instance and log ingestion, and the discount applied on top. Two teams running the same application can land far apart on the same provider, because commitment coverage and egress paths move the total more than any per-unit rate.

The table compares published mechanics, not quotes. Rates change, regions differ, and the number that matters is in your own cost and usage report.

Published terms, not a quote
AWSMicrosoft AzureGoogle Cloud
Committed computeSavings Plans and RIs, up to 72%Reservations 72%, savings plan 65%CUDs 57%, spend-based 25%
Commitment scopeCompute Savings Plans span EC2, Fargate, LambdaSavings plan spans series and regionsCUDs lock to project, region and family
Kubernetes control plane$0.10 per cluster-hour plus nodesFree tier free, Standard adds a fee$0.10 per cluster-hour, first zonal cluster free
Internet egressFirst tier around $0.09/GBFirst tier just below thatPremium highest, standard below
Where it winsBreadth and marketplaceWindows and SQL licensingBigQuery and analytics

Commitments, not list prices

AWS sells two shapes of compute commitment. Compute Savings Plans, advertised at up to 66% off on-demand, cover EC2, Fargate and Lambda across families and regions. EC2 Instance Savings Plans reach 72% but hold you to one family in one region. Both accept no upfront, partial or all upfront payment, and all upfront carries the deepest discount.

Azure reservations reach 72% and can be exchanged or refunded inside published limits; the savings plan for compute, up to 65%, is looser and spans VM series and regions. Google's committed use discounts are the most constrained: resource-based commitments, up to 57% and higher for memory-optimised families, attach to one project, region and machine family, and are billed monthly with no upfront option.

Spot is where flexibility gets cheap and fragile. AWS advertises up to 90% off with a two-minute interruption notice, Azure Spot VMs give 30 seconds, and Google Spot VMs give 30 seconds with no maximum runtime. The deeper the discount, the narrower the thing it covers, which is why a three-year commitment in one instance family is a bet that the family stays right.

Advertisement

Egress and the architecture it drives

Ingress is free everywhere; egress is billed. The first tier of internet egress sits within a few cents of $0.09 per gigabyte at AWS and Azure, while Google's premium network tier is the most expensive of the three for the same first tier, with a cheaper standard tier beneath it. Free monthly allowances differ too.

A 10-terabyte month to the internet costs about $900 at $0.09 a gigabyte, and the same bytes crossing zones are billed at both ends.

The lines that surprise people are rarely the headline rate. Cross-zone traffic is billed in both directions, so a chatty service spread across zones pays for every call. NAT gateways, load balancers and private endpoints add hourly charges plus per-gigabyte processing. Origin fetch from object storage into the provider's own CDN is priced separately; AWS documents no data-transfer charge for the fetch from S3 to CloudFront.

Those mechanics shape architecture. Keeping tightly coupled services in one zone trades availability for a smaller transfer bill. Serving large reads from a CDN rather than compute cuts egress at the source. Forecastable transfer is also one of the few lines a provider will re-price at renewal.

Storage, Postgres and observability

Object storage is the least interesting line: a hot tier in a US region lands within about half a cent of $0.02 per gigabyte-month at all three. The units are the trap. AWS prices PUT and GET requests per 1,000, Azure prices operations per 10,000, and Google splits Class A and Class B operations, also per 1,000. Normalised to a million reads, the spread from cheapest to dearest is roughly an order of magnitude.

Managed PostgreSQL bills the same shape everywhere with different levers. RDS and Aurora charge instance hours, storage, provisioned IOPS, backups and a standby for high availability; Aurora Standard adds an I/O charge per million requests, and I/O-Optimized removes it for a higher instance rate. Azure's flexible server bundles an IOPS allowance with storage and can be stopped to suspend compute billing. Cloud SQL bills a second instance for high availability, roughly doubling the largest line at all three.

Observability is the most uneven of the five. Google does not charge to ingest logs into Cloud Logging and includes 30 days of retention, billing for storage after that and for analytics queries. CloudWatch and Azure Monitor both bill by volume ingested, at published per-gigabyte rates that differ by a multiple, with retention past a set window billed separately. Cutting log volume usually beats changing vendor.

Advertisement

Where each provider is genuinely cheaper

Azure's structural advantage is licensing. Windows Server and SQL Server are available at licence-included rates, and Azure Hybrid Benefit lets existing licences with Software Assurance cover the licence portion of a virtual machine. For a Microsoft-heavy estate that is worth more than a few points of compute discount.

Google's is analytics. BigQuery separates storage from compute, prices queries on demand or by slots and editions, does not charge to load data in, and includes a monthly free query allowance. A workload centred on BigQuery keeps query, storage and egress in one place.

AWS's is breadth: the widest set of instance families and regions, the largest third-party marketplace and the deepest independent software vendor coverage, which matters when the managed service you need exists nowhere else. Its list prices are more often a starting point than an ending point. Breadth is also complexity, and complexity is where the bill leaks.

Re-price your own footprint

Take 30 consecutive days of cost and usage data, from the AWS cost and usage report, an Azure Cost Management export or a Cloud Billing export, and rebuild four lines against each vendor's published rate card: compute hours by instance family with realistic commitment coverage, egress gigabytes split by path, storage gigabyte-months with request counts, and managed-service hours and volumes.

Add support, which AWS and Google price as a percentage of consumption and Azure sells as flat monthly plans, plus a buffer of around 20% for the services nobody inventoried. The output is a range, not a number: no published comparison can price your workload on a cloud you are not running.

Take the range into a committed-spend conversation, an AWS enterprise discount programme, an Azure consumption commitment or a Google commitment, because the gap between list price and a signed commitment is usually wider than the per-unit differences above. Re-price the footprint once a year: the mechanics hold, the numbers do not.

Advertisement

Sources 6

Read next

More Cloud