Introduction: The Year Is 2025 — Why Does AWS Still Feel Like 2012?
Cloud computing was supposed to free us. From on-prem servers, from hardware costs, from complexity. In many ways, it did — but somewhere along the road, Amazon Web Services (AWS) stopped being a liberating force and became a labyrinth of over-engineering, hidden costs, and maddening UI decisions.
If you’ve ever tried to spin up a simple virtual machine and found yourself knee-deep in EBS volumes, key pairs, IAM roles, and subnet configurations — you’re not alone. AWS feels like it was built for the kind of engineers who write Kubernetes YAML by hand and enjoy it. And that’s fine — but what about the rest of us?
Meanwhile, Google Cloud Platform (GCP) and Microsoft Azure have evolved. They still carry complexity — cloud is complex, after all — but they’ve learned to respect user time, reduce cognitive overhead, and focus on workflows, not just services.
This post is a deep dive into the current state of AWS vs GCP vs Azure, especially from a usability, setup and cost transparency perspective. If you’re frustrated by AWS in 2025, you’re not imagining things — it’s not just you.
1. AWS: A Power Tool That’s Actively Hostile to Simplicity
Let’s not rewrite history: AWS was revolutionary. When it launched EC2, S3, and RDS, it created a paradigm shift. Suddenly, you could rent infrastructure by the hour. No more data centers, no more racking servers.
But here’s the problem: AWS never really rethought its UI or UX since those early days. Instead, it just kept adding features — and new service names — and new product families — on top of what was already there.
A Basic Task: Create a Linux VM
Want a simple Ubuntu server with 4 vCPUs, 16 GB RAM, and 30 GB of disk?
On AWS, you’ll need to:
- Pick the right instance type from an overwhelming list (t2, t3, t3a, m5, m5a, m6i, c6g, etc.) with no simple “filter by RAM/CPU”
- Manually edit the default storage volume, which might only offer 8 GB by default
- Set up or choose a key pair just to connect to the machine (hope you don’t lose the PEM file!)
- Configure a security group, even though most people just want “allow SSH from my IP”
- Choose or define a VPC and subnet, which sounds like a simple “network config” but could be misconfigured enough to prevent all traffic
- Launch the instance… and then remember to allocate an Elastic IP if you want a static IP — because otherwise it changes on reboot
And after all that, you’ll still need to:
- Go to EBS to manage disk volumes
- Go to IAM to give the machine any permissions
- Go to CloudWatch to monitor the thing
- And finally, navigate all over again to delete everything manually if you don’t want surprise billing
It’s an absurd number of steps for something that should be: „Give me a Linux box.“
AWS gives you raw power, yes. But the UX is like giving someone a Formula 1 car with no steering wheel and saying, “Good luck.”
2. GCP: Not Perfect, But Rational
Google Cloud Platform was late to the game, but it learned from AWS’s mistakes — at least when it comes to usability.
What’s Better on GCP?
- Instance creation by resource, not product code: You can choose a VM by saying “I want 4 CPUs and 16 GB RAM.” No cryptic names like “m6i.xlarge”.
- Built-in startup scripts and SSH keys: No need to wrangle PEM files or juggle IAM roles just to log in.
- Projects and billing scopes: Everything you create is part of a GCP Project. You delete the project — everything goes. No need to track hidden volumes, IPs, or logs.
- Cleaner pricing: Estimators are built-in. UI even warns you when you’re about to deploy expensive resources.
GCP also excels at dev-friendly workflows:
- Easy GitHub integrations
- Deployment via gcloud CLI that’s logical and consistent
- Cloud Shell with built-in tools
The downside? GCP still has some learning curve. And it inherits some of Google’s quirks: beta APIs, name changes, and features released in stages. But overall, the experience is coherent, logical, and streamlined.
3. Azure: Microsoft’s UX Redemption Story
You don’t expect Microsoft to win a usability battle — but here we are. Azure’s interface is polished, intuitive, and focused on getting work done, not forcing you to memorize product names.
Why Azure Wins UX in 2025:
- The portal is predictable. Every resource is accessible from a logical left-hand menu, grouped under a subscription and resource group.
- Virtual machine creation is all on one screen: OS, specs, network, disk, and pricing estimate.
- Resource groups are the star: spin everything up into one group — delete the group — done.
- Real-time cost estimates as you build. No surprises.
- Activity logs and error messages are human-readable, not cryptic.
Azure also integrates deeply with Microsoft 365, Active Directory, and GitHub. If you’re already in that ecosystem, everything just works.
Unlike AWS, which feels like a collection of separate tools taped together, Azure feels like a platform. You’re not “switching between services” — you’re staying in flow.
4. Cost Management: Hidden Pitfalls vs. Transparent Billing
| Feature | AWS | GCP | Azure |
|---|---|---|---|
| Cost Explorer | ✅ but outdated and clunky | ✅ intuitive and modern | ✅ integrated and live-updating |
| Alerts and Budgets | ✅ exists, but buried | ✅ simple to configure | ✅ well-integrated |
| Project-wide cleanup | ❌ manual and risky | ✅ delete one project, everything gone | ✅ delete one resource group, everything gone |
| Hidden cost traps | ✅ Elastic IPs, NAT gateways, orphaned volumes | ⚠️ some long-term storage costs | ⚠️ limited, mostly transparent |
With AWS, the biggest billing risk is forgetfulness. You leave one EBS snapshot or Elastic IP unassociated? That’s $5 to $20 per month — forever.
Azure and GCP both take a more scoped and grouped approach: if you delete your project or group, you delete everything — no orphaned resources left behind.
5. Developer Experience (DevEx): A Tale of Three CLIs
- AWS CLI: Powerful but verbose. Often requires multiple services and JSON parsing to do anything useful. Example:
aws ec2 describe-instances --filters ... - GCP CLI (gcloud): Logical structure, better defaults, consistent command patterns.
- Azure CLI: Surprisingly clean. Real language-like commands (
az vm create,az group delete) that are readable and memorable.
Add to that GCP’s and Azure’s Cloud Shells — with built-in SDKs and editors — and you start to wonder how AWS, the supposed pioneer, got left behind in the developer experience arms race.
Conclusion: AWS Is Still Powerful — But Exhausting
There’s no denying AWS’s flexibility, scale, and market share. But in 2025, it feels like that market share is resting on inertia, not superiority. If you’re starting a project today, or just want to focus on building rather than battling infrastructure…
GCP will treat you with rational workflows.
Azure will make you feel like someone finally gets it.
AWS will make you feel like you’re doing a PhD in Cloud Administration.
If you still have to use AWS, you’ll probably end up using ChatGPT or Copilot to help you navigate it — and that says everything.
TL;DR
- AWS = Raw power, terrible UX
- GCP = Clean design, better project management
- Azure = The best UI/UX, especially for teams and enterprises
Cloud is no longer a privilege. It’s a utility.
And utilities should just work.