AWS vs Azure vs GCP Pricing — Honest Comparison for 2026
Every "AWS vs Azure vs GCP" article gives you a feature comparison matrix and calls it a day. Nobody talks about what actually matters — how much does it cost to run a real workload on each cloud? Not list prices. Not "starting at" marketing numbers. The actual monthly bill for a web application, a data pipeline, or a Kubernetes cluster. This post compares real pricing across 7 categories — compute, storage, databases, Kubernetes, serverless, networking, and free tiers — with actual dollar amounts you can budget with.
I run production workloads on AWS and have priced out equivalent architectures on Azure and GCP for migration evaluations. The honest answer is: no single cloud is cheapest for everything. Each one wins in specific categories. The right choice depends on your workload, your team's skills, and which vendor's commitment discounts align with your usage patterns.
The TL;DR — Who Wins Each Category
| Category | Cheapest | Why |
|---|---|---|
| General Compute | GCP | Sustained use discounts apply automatically (20-30% off) |
| Object Storage | Tie | All three within 5% of each other |
| Managed Database | AWS/GCP | Aurora Serverless v2 or Cloud SQL, depends on workload |
| Kubernetes | GCP | GKE control plane is free ($0 vs $73/month on EKS) |
| Serverless | GCP | Cloud Run is simpler and cheaper than Fargate for most cases |
| Data Transfer | GCP | $0.08/GB vs AWS $0.09/GB egress |
| Free Tier | GCP | Always-free f1-micro instance (others expire after 12 months) |
| Ecosystem / Services | AWS | Widest catalog, most mature, largest community |
| Enterprise Windows | Azure | Hybrid Benefit saves 40-80% on Windows + SQL Server |
GCP wins on raw pricing in most categories. AWS wins on ecosystem and service breadth. Azure wins for Microsoft shops. But pricing is only one factor — the cheapest cloud that your team doesn't know how to use will cost you more in engineering time than the most expensive cloud they're productive on.
Compute Pricing — VMs Side by Side
The most common comparison. A general-purpose VM with 4 vCPUs and 16 GB RAM, Linux, in a US region:
| Spec | AWS (m6i.xlarge) | Azure (D4s v5) | GCP (n2-standard-4) |
|---|---|---|---|
| On-Demand (monthly) | $140 | $140 | $134 |
| 1-Year Commitment | $89 (Savings Plan) | $85 (Reserved) | $95 (CUD) |
| 3-Year Commitment | $56 (Savings Plan) | $54 (Reserved) | $60 (CUD) |
| Sustained Use (auto) | N/A (manual commit) | N/A (manual commit) | $107 (automatic 20% off) |
| Spot / Preemptible | $42-56 (variable) | $28-42 (variable) | $40 (fixed, preemptible) |
Key insight: On list price, all three are nearly identical. The difference is in HOW you get discounts:
- AWS — you must actively purchase Savings Plans or Reserved Instances. No automatic discounts. See my RI vs Savings Plans guide.
- Azure — similar to AWS. Manual Reserved Instance purchase required.
- GCP — sustained use discounts kick in automatically after 25% monthly usage. No commitment, no purchase, just use the VM and the price drops. This is the single biggest pricing advantage GCP has over AWS and Azure.
Storage Pricing
| Storage Type | AWS S3 Standard | Azure Blob Hot | GCP Cloud Storage Standard |
|---|---|---|---|
| Per GB/month | $0.023 | $0.018 | $0.020 |
| PUT requests (per 1K) | $0.005 | $0.005 | $0.005 |
| GET requests (per 1K) | $0.0004 | $0.004 | $0.0004 |
| Cold/Archive | $0.004 (Glacier) | $0.001 (Archive) | $0.004 (Coldline) |
Storage pricing is effectively identical across all three for standard tiers. Azure is slightly cheaper on hot storage per GB but charges more on GET requests. For cold/archive, Azure Archive is the cheapest at $0.001/GB but has the longest retrieval time. In practice, the storage cost difference between clouds is negligible — your choice should be based on the ecosystem, not the storage price.
Managed Database Pricing
| Database | AWS | Azure | GCP |
|---|---|---|---|
| PostgreSQL (4 vCPU, 16GB) | $280/mo (RDS) | $290/mo (Azure DB) | $260/mo (Cloud SQL) |
| MySQL (same spec) | $260/mo (RDS) | $270/mo (Azure DB) | $240/mo (Cloud SQL) |
| Serverless DB | Aurora Serverless v2 | Azure SQL Serverless | AlloyDB / Spanner |
| NoSQL | DynamoDB (pay-per-request) | Cosmos DB | Firestore / Bigtable |
| Multi-AZ / HA cost | 2x (standby replica) | ~1.5x | ~1.5x (regional) |
GCP is 5-10% cheaper on managed PostgreSQL and MySQL. AWS Aurora offers the best performance per dollar for high-throughput workloads. Azure is cheapest for SQL Server due to license portability (Hybrid Benefit). For production databases, see my RDS production setup guide.
Kubernetes Pricing
This is where the difference is stark:
| Component | AWS EKS | Azure AKS | GCP GKE |
|---|---|---|---|
| Control Plane | $0.10/hr ($73/mo) | Free (Standard) | Free (Standard) |
| Per cluster/month (just control plane) | $73 | $0 | $0 |
| 3 clusters | $219/mo | $0 | $0 |
| Worker nodes | Same as EC2 pricing | Same as VM pricing | Same as GCE pricing |
| Autopilot / Serverless | Fargate ($$$) | Virtual Nodes | GKE Autopilot (per-pod pricing) |
AWS EKS charges $73/month per cluster just for the control plane. Azure AKS and GCP GKE give it for free. If you run 3 clusters (dev, staging, prod), that is $219/month on EKS for something that is free on the other two. Worker node pricing is equivalent to VM pricing on each cloud. For EKS setup, see my production EKS guide.
Serverless Pricing
| Service | AWS Lambda | Azure Functions | GCP Cloud Functions |
|---|---|---|---|
| Free tier (monthly) | 1M requests + 400K GB-sec | 1M requests + 400K GB-sec | 2M requests + 400K GB-sec |
| Per 1M requests | $0.20 | $0.20 | $0.40 |
| Per GB-sec | $0.0000166 | $0.0000160 | $0.0000025 |
| Container serverless | Fargate: $0.04/vCPU-hr | Container Apps: $0.024/vCPU-hr | Cloud Run: $0.024/vCPU-hr |
For traditional functions (Lambda/Functions/Cloud Functions), pricing is nearly identical. The real difference is in container serverless: GCP Cloud Run and Azure Container Apps are ~40% cheaper than AWS Fargate per vCPU-hour. Cloud Run also has a generous free tier and scales to zero — Fargate does not scale to zero (minimum 1 task running).
Data Transfer / Networking
The hidden cost that catches everyone. Data egress (sending data out to the internet):
| Egress | AWS | Azure | GCP |
|---|---|---|---|
| First 100 GB/month | Free (first 100GB) | Free (first 100GB) | Free (first 200GB) |
| Up to 10 TB | $0.09/GB | $0.087/GB | $0.08/GB |
| NAT Gateway | $0.045/hr + $0.045/GB | $0.045/hr + $0.045/GB | $0.044/hr + $0.045/GB |
| Cross-AZ within region | $0.01/GB each way | Free (within region) | Free (within region) |
Critical difference: AWS charges $0.01/GB for cross-AZ data transfer within the same region. Azure and GCP do not. For a microservices architecture with heavy inter-service communication across AZs, this cost adds up fast on AWS. See my NAT Gateway cost optimization guide for how to reduce this on AWS.
Free Tier Comparison
| Resource | AWS Free Tier | Azure Free | GCP Free |
|---|---|---|---|
| Compute | 750 hrs t2.micro (12 mo) | 750 hrs B1s (12 mo) | f1-micro (always free) |
| Storage | 5 GB S3 (12 mo) | 5 GB Blob (12 mo) | 5 GB Cloud Storage (always) |
| Database | 750 hrs db.t2.micro (12 mo) | 250 GB SQL (12 mo) | 1 GB Firestore (always) |
| Functions | 1M requests/mo (always) | 1M requests/mo (always) | 2M requests/mo (always) |
| Duration | 12 months then expires | 12 months then expires | Always free (no expiry) |
GCP wins the free tier. Their always-free compute instance never expires — you can run a small workload on GCP forever at zero cost. AWS and Azure free tiers expire after 12 months, and surprise bills are common when people forget to shut down resources after the free period ends.
Startup Credits
| Program | Credits | Duration |
|---|---|---|
| AWS Activate | $1,000 - $100,000 | 1-2 years |
| Microsoft for Startups | $1,000 - $150,000 | 1-2 years |
| Google for Startups | $2,000 - $200,000 | 1-2 years |
Google offers the most generous startup credits. If you are a startup, apply to all three — use whichever gives you the most credits, then decide on a long-term cloud after the credits run out and you have real usage data.
The Real-World Decision Framework
Stop comparing list prices. Here is how to actually choose:
- Your team's skills matter more than pricing. If your team knows AWS, the productivity loss of switching to GCP to save 10% will cost more than the 10% savings. Stick with what you know unless the savings are dramatic (30%+).
- Use the credits. Apply to all three startup programs. Use whichever cloud gives you the most free credits for your first 12-18 months. Make the permanent decision after you have real usage data.
- Kubernetes? Consider GKE seriously. Free control plane saves $73/cluster/month. GKE is also the most mature managed K8s (Google invented Kubernetes).
- Windows / Microsoft stack? Azure wins. Hybrid Benefit saves 40-80% on Windows + SQL Server licensing. No other cloud matches this.
- Widest service catalog? AWS wins. 200+ services vs ~150 on Azure and GCP. If you need a niche service, AWS probably has it.
- Analytics / BigQuery? GCP wins. BigQuery is genuinely best-in-class for analytics. Many companies run compute on AWS and analytics on GCP specifically for BigQuery.
For the full multi-cloud decision framework, see my multi-cloud strategy guide.
Frequently Asked Questions
Which cloud provider is cheapest in 2026?
GCP is cheapest for compute (sustained use discounts), Kubernetes (free control plane), and data transfer. AWS wins on ecosystem breadth. Azure wins for Microsoft shops. There is no single cheapest cloud — it depends on your workload.
Is AWS more expensive than Azure?
On list prices, within 5% of each other. Azure is cheaper for Windows/SQL Server workloads (Hybrid Benefit). AWS has more granular instance sizing. Real cost depends on which commitment discounts you use.
Is GCP cheaper than AWS?
Yes for compute (automatic 20-30% sustained use discounts) and Kubernetes (free control plane vs $73/month on EKS). For storage and databases, prices are comparable.
What is the cheapest cloud for startups?
Apply to all three credit programs — Google offers up to $200K, AWS up to $100K, Azure up to $150K. Use whichever gives you the most credits. Beyond credits, GCP is cheapest for compute-heavy workloads.
How much does AWS cost per month for a small app?
$50-200/month typical: t3.small ($15), RDS ($25), S3 ($5), ALB ($20), NAT Gateway ($32+), Route 53 ($1). NAT Gateway is often the biggest surprise cost.
Which cloud has the best free tier?
GCP — always-free f1-micro instance, 5GB storage, 2M function invocations. AWS and Azure free tiers expire after 12 months.
📖 Want to ace DevOps interviews?
The DevOps Interview Playbook — 30 real-world scenarios including "the CEO wants to cut cloud costs by 30%."
Get the Playbook — $15Related Reading
- AWS NAT Gateway Cost Optimization — the hidden AWS cost most people miss
- Reserved Instances vs Savings Plans — how to commit and save 30-60%
- Why Companies Use Multi-Cloud — when using multiple clouds makes sense
- Scaling from 1K to 1M Users on AWS