☁️ AWS, Azure & GCP: A Practical Comparison
You've built and tested a full-stack app — now it needs a home on the internet that stays up, scales, and doesn't surprise you with the bill. This week is about that home: the cloud. We start by getting your bearings among the three giants, so the acronyms stop being intimidating and start being tools.
Week 13 · Monday: Cloud Platforms Overview · Lecture 1
🎯 Learning Objectives
By the end of this lesson, you will be able to:
- Explain the difference between IaaS, PaaS, SaaS, and where serverless and containers fit
- Map the core service categories (compute, storage, database, serverless, CDN) across AWS, Azure, and GCP
- Reason about cloud geography — regions, availability zones, and edge locations — when placing an app
- Compare the three providers' pricing levers (on-demand, reserved, spot, free tier) at a high level
- Apply a decision framework to pick a provider for a given project instead of guessing
- Recognize developer-friendly PaaS options (Render, Railway, Fly.io, Vercel) that sit alongside the big three
Estimated Time: 55 minutes
Practice: Map a small full-stack app onto each provider's services and justify a choice.
In This Lesson
Why the Cloud?
Before the cloud, launching a web app meant buying physical servers, renting rack space in a data center, wiring networking, and hoping you guessed your capacity right. Guess too low and your site fell over on launch day; guess too high and you paid for idle metal for years. The cloud replaced that capital expense (buy hardware up front) with an operating expense (rent exactly what you use, by the second).
Think of it like transportation. Owning servers is like owning a fleet of trucks: huge upfront cost, you maintain them, and they sit idle most nights. The cloud is like calling a truck the moment you have cargo and paying only for that trip — and being able to summon a hundred trucks in minutes when a big shipment lands.
📖 The three you'll keep hearing about
AWS (Amazon Web Services) — the pioneer, launched 2006, broadest catalog and largest ecosystem. Azure (Microsoft) — deepest enterprise and Windows integration, strongest hybrid story. GCP (Google Cloud Platform) — data, analytics, and machine-learning heritage, clean developer ergonomics. All three offer the same fundamentals; the differences are in depth, defaults, and culture.
IaaS, PaaS & SaaS — the responsibility split
The most useful mental model in cloud computing is who manages what. Every cloud offering falls somewhere on a spectrum from "you manage almost everything" to "you manage almost nothing." The classic analogy is pizza:
- On-premises is making pizza at home — you buy every ingredient, own the oven, and cook it yourself.
- IaaS is buying the frozen pizza — the kitchen and oven are yours, but the dough and toppings come prepared.
- PaaS is delivery — you provide the table and drinks; someone else makes and delivers the pizza.
- SaaS is dining out — you just show up and eat.
| Model | You manage | Example | Good when |
|---|---|---|---|
| IaaS | OS, runtime, app, data | EC2 VM, Compute Engine | You need full control of the machine |
| PaaS | App code + data only | App Engine, Render, Elastic Beanstalk | You want to ship code, not babysit servers |
| SaaS | Nothing — you just use it | Gmail, Stripe, Auth0 | The problem is already solved by someone else |
💡 Where do serverless and containers fit?
Containers (Docker, run on Kubernetes/ECS/Cloud Run) are a packaging and portability layer — they can sit at the IaaS level (you run the cluster) or feel like PaaS (managed platforms like Cloud Run run them for you). Serverless functions (Lambda, Cloud Functions) are the far end of PaaS: you upload a function, the provider runs it on demand and scales it to zero when idle. You manage only the code. Serverless is a consumption model as much as a compute model — no traffic means no bill.
Meet the Big Three
All three are enormous, mature, and reliable. Their reputations come from where they started.
AWS — the pioneer
Amazon Web Services launched in 2006 out of Amazon's own internal infrastructure. First-mover advantage gave it the broadest catalog (hundreds of services) and the largest community, so almost every tutorial, Stack Overflow answer, and Terraform module you find will have an AWS example. The trade-off: the sheer breadth can be overwhelming, and the console has a reputation for complexity.
Azure — the enterprise partner
Microsoft Azure launched in 2010 (originally "Windows Azure"). Its superpower is integration with the Microsoft stack that big companies already run — Active Directory, Office 365, Windows Server, SQL Server. If your organization is a "Microsoft shop," Azure feels like home and often comes with licensing discounts.
GCP — the data powerhouse
Google Cloud Platform launched publicly in 2013, built on the same infrastructure that runs Search and YouTube. Its strengths are data analytics (BigQuery), machine learning (Vertex AI, TensorFlow origins), and Kubernetes (which Google created). Developers often praise its cleaner, more consistent tooling.
🌍 Who runs on what (and why it's telling)
Netflix runs largely on AWS even while competing with Amazon in streaming. Walmart leans on Azure partly to avoid funding a retail rival. Spotify and many data-heavy startups favor GCP for BigQuery. The lesson: real companies pick based on economics, existing relationships, and specialty strengths — not on a single "best" ranking.
Cloud Geography: Regions, Zones & Edges
Your app doesn't live "in the cloud" abstractly — it lives in a specific building in a specific country. Understanding the geography vocabulary is essential for latency, compliance, and reliability.
- Region — a geographic area (e.g.
us-east-1in Virginia,europe-west1in Belgium) containing multiple data centers. - Availability Zone (AZ) — an isolated data center within a region, with its own power, cooling, and networking. Deploying across multiple AZs survives a single data-center failure.
- Edge location — a smaller point of presence (used by CDNs) that caches content close to users, far more numerous than regions.
⚠️ Region choice has real consequences
Pick regions close to your users (latency), where the law requires data to live (GDPR, data residency), and where the services you need are available (new services roll out region by region). Prices also vary between regions — us-east-1 is often the cheapest on AWS, while some regions cost noticeably more.
Core Service Map
Here's the single most useful table in this lesson. The same fundamental building blocks exist on every provider — only the names change. Learn the categories and the names translate themselves.
Compute
| Category | AWS | Azure | GCP |
|---|---|---|---|
| Virtual machines | EC2 | Virtual Machines | Compute Engine |
| Containers (orchestrated) | ECS / EKS | AKS | GKE |
| Managed containers | App Runner / Fargate | Container Apps | Cloud Run |
| Serverless functions | Lambda | Functions | Cloud Functions |
| Traditional PaaS | Elastic Beanstalk | App Service | App Engine |
Storage & Database
| Category | AWS | Azure | GCP |
|---|---|---|---|
| Object storage | S3 | Blob Storage | Cloud Storage |
| Block storage (disks) | EBS | Managed Disks | Persistent Disk |
| Managed SQL database | RDS / Aurora | SQL Database | Cloud SQL / AlloyDB |
| NoSQL document | DynamoDB | Cosmos DB | Firestore |
| In-memory cache | ElastiCache | Cache for Redis | Memorystore |
| Data warehouse | Redshift | Synapse | BigQuery |
Networking & Delivery
| Category | AWS | Azure | GCP |
|---|---|---|---|
| CDN | CloudFront | Front Door / CDN | Cloud CDN |
| Load balancer | ELB (ALB / NLB) | Load Balancer / App Gateway | Cloud Load Balancing |
| DNS | Route 53 | Azure DNS | Cloud DNS |
| Secrets management | Secrets Manager | Key Vault | Secret Manager |
✅ The same app, three dialects
A React frontend on object storage + CDN (S3+CloudFront / Blob+Front Door / Cloud Storage+Cloud CDN), a Node API on managed containers (App Runner / Container Apps / Cloud Run), talking to a managed Postgres (RDS / SQL Database / Cloud SQL). Learn that pattern once and you can deploy it anywhere.
Pricing Levers
Every provider charges for roughly the same things — compute time, storage volume, and data transfer out — and gives you the same levers to reduce the bill. (We go deep on cost in a later lesson; here's the shape.)
| Lever | What it is | Typical saving |
|---|---|---|
| On-demand | Standard pay-as-you-go rate, no commitment | Baseline (0%) |
| Reserved / committed | 1- or 3-year commitment to steady usage | ~30–70% |
| Spot / preemptible | Spare capacity that can be reclaimed anytime | ~70–90% |
| Free tier | Always-free limits + 12-month intro credits | Great for learning |
💡 Rule of thumb: the biggest surprise on a cloud bill is almost never compute — it's egress (data transferred out to the internet). Serving media through a CDN and keeping traffic in-region is the cheapest architectural habit you can build.
Provider-specific flavors
- AWS: Savings Plans (flexible commitment), Reserved Instances, Spot Instances.
- Azure: Reservations, plus Hybrid Benefit to reuse existing Windows/SQL licenses.
- GCP: automatic Sustained Use Discounts (no commitment needed) and Committed Use Discounts, with per-second billing.
Developer-Friendly PaaS: The Fourth Option
Here's a secret the big three won't advertise: for most side projects, MVPs, and small teams, you may not need AWS, Azure, or GCP directly at all. A generation of developer-first platforms wrap that same infrastructure in a dramatically simpler experience — you connect a Git repo, they build and deploy on every push.
| Platform | Sweet spot | Underlying idea |
|---|---|---|
| Vercel | Next.js / frontend + edge functions | Git push → global deploy in seconds |
| Render | Full-stack apps, managed Postgres + Redis | Heroku-style simplicity, modern pricing |
| Railway | Quick backends + databases | Provision a DB in one click, usage-based |
| Fly.io | Containers close to users, globally | Run your Docker image in many regions |
These are still cloud — many run on top of AWS or GCP under the hood — but they trade raw control for speed and developer happiness. The rule: start simple, and only reach for the big three directly when you outgrow the abstraction or need a service they don't offer.
Choosing a Provider
There is no universally correct answer, but there is a sensible framework. Ask these questions in order:
✅ Honest guidance
- Learning full-stack? Pick one provider and go deep. The concepts transfer; the muscle memory doesn't.
- Startup shipping fast? Start on a PaaS. You can migrate later — and most projects never need to.
- Team's existing skills often matter more than any feature comparison. The best cloud is the one your people can operate confidently at 3 a.m.
Practice & Quiz
🏋️ Exercise 1: Translate the architecture
Goal: A colleague describes an app on AWS: "It's a React SPA on S3 + CloudFront, a Node API on Lambda behind API Gateway, data in DynamoDB, and images in S3." Rewrite that same architecture using GCP service names.
💡 Hint
Go category by category: object storage + CDN, serverless functions + API gateway, NoSQL document DB, object storage again. Use the Core Service Map table.
✅ Solution
React SPA on Cloud Storage + Cloud CDN; Node API on Cloud Functions behind API Gateway (or Cloud Run); data in Firestore; images in Cloud Storage. Same pattern, GCP dialect.
🏋️ Exercise 2: Pick a lane
Goal: For each scenario, name a sensible provider (or PaaS) and one sentence of justification.
- A weekend portfolio site built with Next.js.
- An internal tool for a company that already uses Office 365 and Active Directory.
- A startup whose whole product is analyzing terabytes of event data.
✅ Solution
- 1 → Vercel: zero-config Next.js deploys and a generous free tier.
- 2 → Azure: native Active Directory / Office 365 integration and license benefits.
- 3 → GCP: BigQuery makes large-scale analytics fast and cheap to query.
🎯 Quick Quiz
Question 1: In which model does the cloud provider manage the operating system and runtime, leaving you responsible only for your app code and data?
Question 2: AWS S3, Azure Blob Storage, and GCP Cloud Storage are all examples of which service category?
Question 3: Which cost item most often causes a surprise spike on a cloud bill?
Best Practices & Pitfalls
✅ Do
- Learn service categories first; the vendor names translate themselves
- Start on a PaaS for small projects and migrate only when you must
- Choose regions for latency, compliance, and price, in that order
- Deploy across multiple availability zones for anything that must stay up
- Set a budget alert on day one, before you deploy anything
❌ Don't
- Chase a mythical "best cloud" — fit to your needs and team skills
- Adopt multi-cloud early "for flexibility"; it multiplies complexity before you need it
- Forget that free-tier trials expire — set a reminder before the 12 months lapse
- Ignore egress costs when designing where data flows
⚠️ Vendor lock-in is a spectrum, not a wall
Using a managed database or object store creates some lock-in, but the productivity gain is usually worth it. Keep lock-in low where it's cheap (use standard Postgres over a proprietary API when you can) and accept it where the managed service is genuinely better. Rewriting everything to stay "portable" is a cost most teams never recoup.
Summary
🎉 Key Takeaways
- The cloud swaps capital expense for operating expense — rent what you use, scale on demand
- IaaS → PaaS → SaaS is a spectrum of how much the provider manages; serverless and containers slot in along it
- AWS = broadest & largest ecosystem, Azure = enterprise/Microsoft, GCP = data & ML
- Every provider offers the same core categories (compute, storage, DB, serverless, CDN) under different names
- For small projects, developer-friendly PaaS (Vercel, Render, Railway, Fly) is often the smartest start
📚 Additional Resources
- AWS — What is cloud computing?
- Google Cloud — Platform overview
- Microsoft — Azure Cloud Adoption Framework
- Azure — Compute service decision tree
🚀 What's Next?
Now that you can navigate the providers, the next lesson zooms in on the exact services a real web application stitches together — compute, managed databases, object storage, CDN, DNS, load balancers, and secrets: Cloud Services for Web Apps.
🎉 The map is in your hands
The acronyms aren't scary anymore — they're just three dialects of the same language. Next, we build a real architecture with them.