DEV Community

Cover image for AWS vs Azure vs GCP: A Real Cloud Pricing Comparison
Aman Singh
Aman Singh

Posted on

AWS vs Azure vs GCP: A Real Cloud Pricing Comparison

Choosing between AWS, Azure, and Google Cloud isn't just about picking the cheapest hourly rate. All three providers offer scalable compute, storage, and networking, the real differences show up in how discounts are structured, how commitments work, and how much risk you absorb when usage shifts.

This comparison focuses on those mechanics: pricing models, commitment flexibility, and what "savings" actually means once you factor in coverage and utilization.

How Each Provider Structures Pricing

All three providers stack pricing in the same basic layers: on-demand at the top, then commitment-based discounts, then interruptible capacity, then enterprise agreements. But the way those layers interact differs.

On-demand is the baseline provision resources, pay per second or per hour, no lock-in. It's also the most expensive and the ceiling against which every discount is measured. Rates are region-specific, so a US-East instance can look meaningfully different from the same instance in Europe-West.

Commitment discounts are where the structural differences emerge.

  • AWS offers Reserved Instances (locked to a specific instance family and region) and Savings Plans (spend-based, flexible across instance types). Savings Plans are generally the more practical option for modern workloads. Discounts can reach up to 72% vs on-demand for 3-year terms.
  • Azure offers Reserved VM Instances and a Savings Plan for Compute. It also has Azure Hybrid Benefit; if your org already holds Windows Server or SQL Server licenses, you can apply them to reduce effective compute rates. This creates a pricing advantage for Microsoft-heavy shops that doesn't appear in raw rate comparisons.
  • GCP offers Committed Use Discounts (resource-based or spend-based) plus Sustained Use Discounts automatic rate reductions for VMs that run most of the billing month, no commitment required. This is unique: GCP blends utilization-based discounts with optional longer-term commitments.

Spot/preemptible capacity exists across all three but should be treated as probabilistic capacity, not a commitment substitute. Deep discounts, but workloads must tolerate interruption.

If you're trying to understand how Savings Plans differ from Reserved Instances, we covered the tradeoffs in detail here AWS Savings Plans vs Reserved Instances: A Practical Guide

"Equivalent" Instances Aren't Always Equivalent

The instinct in any pricing comparison is to match specs 4 vCPU, 16 GB RAM and compare hourly rates. That's a reasonable start, but it misses a few variables that actually matter.

Processor generation differs within and across providers. AWS offers Intel, AMD, and Graviton (ARM) variants. Azure ties D-series generations to specific CPU types. GCP supports Intel, AMD, and custom Google processors. Two instances with matching vCPU counts may not deliver the same single-thread performance or network throughput which means a cheaper hourly rate could require more instances to handle the same workload.

Regional pricing variance is significant on all three platforms. A provider that looks cheaper in the US-East might be more expensive in Europe-West. For globally distributed architectures, region selection can matter as much as instance family choice.

Billing granularity is broadly per-second across modern AWS, Azure, and GCP instances but rounding behavior across thousands of scaling events can still accumulate in elastic workloads.

Attached costs block storage, network egress, load balancers, monitoring are often excluded from compute comparisons but are part of the real workload cost.

For context on how cloud budgeting tools fit into this AWS Budgets vs Cost Explorer: Key Differences Explained

Commitment Modeling: Where the Real Numbers Live

Public pricing pages show on-demand rates. In practice, most production environments run a mix of on-demand, 1-year commitments, 3-year commitments, and spot capacity.

The economic outcome depends on two things: discount depth and coverage ratio.

Coverage ratio = Committed capacity / Eligible usage

If you run 500 instances and commitments cover 350 of them, coverage is 70%. The remaining 30% runs on-demand.

Blended rate = (Covered usage × discounted rate + Uncovered usage × on-demand rate) / Total usage

To make this concrete assume a 500-instance, 24/7, US-East workload at $840K annual on-demand cost, with a 30% discount for 1-year and 55% for 3-year commitments:

  • 100% on-demand: $840,000
  • 50% coverage, 1-year: ~$714,000 (~15% savings)
  • 75% coverage, 3-year: ~$558,000 (~33% savings)
  • 85% coverage, 3-year: ~$516,000 (~39% savings)

The key takeaway: a 55% discount at 85% coverage produces 39% overall savings not 55%. Coverage multiplies or limits the impact of the discount rate.

Utilization Risk: The Variable Most Comparisons Skip

Commitments assume stability. Workloads don't stay flat over 1–3 year periods.

If you purchase commitments against a 500-instance baseline and usage drops to 420 by year three, you're paying for ~100% of committed capacity against 88% of actual demand. Unused commitments don't disappear; they're sunk costs that erode your realized savings.

This is why mature FinOps teams treat commitments as a portfolio, not a one-time purchase. Practical approaches include laddering 1-year and 3-year terms, staggering purchase dates, mixing spend-based and resource-based commitments, and maintaining partial on-demand exposure as a buffer.

The question shifts from "what's the deepest discount available?" to "what coverage level optimizes effective cost under uncertainty?"

The Risk Transfer Model

Newer tooling in the market has started to address the structural problem of underutilization risk. Historically, if commitments were underused, the customer absorbed the entire cost. Platforms like Usage.ai operate as commitment automation layers across AWS, Azure, and GCP they handle continuous recommendation refresh, coverage optimization, and in some models, introduce cashback or protection if commitments go underused. That shifts part of the utilization risk away from the engineering team.

This reflects a broader shift in how cloud pricing comparison should be framed: it's not just about the provider's published discount, but about how effectively commitments are managed over time.

What Actually Drives the Cost Difference

At enterprise scale, the economic gap between AWS, Azure, and GCP often narrows once commitments are modeled. The larger variance in effective cost tends to come from:

  • How much of the workload is safely covered
  • How accurate utilization forecasts are
  • How flexible commitments are when architecture changes
  • Whether underutilization risk is absorbed internally or managed through tooling

Published pricing is one variable. Commitment strategy and operational discipline are usually the bigger levers.

What's been your experience? Does provider choice or commitment strategy have more impact on your actual cloud bill?

Explore the end-to-end breakdown here → Cloud Pricing Comparison: AWS vs Azure vs GCP (A Technical Cost Modeling Guide)

Top comments (0)