AWS versus Azure is rarely decided on technical merit, and pretending otherwise wastes weeks. Azure wins when the company already runs Microsoft - Entra ID for identity, an Enterprise Agreement with committed spend, Windows Server and SQL Server licences with Hybrid Benefit, and a Teams-and-Office org chart. AWS wins when none of that is true: it has more services, more regions, deeper third-party tooling, and the larger hiring pool. On raw compute the two are within a few percent of each other. If you are agonising over the feature grid, you are optimising the wrong variable.
Table of contents
- The compute prices are close enough to ignore
- Identity is the real fork in the road
- Hybrid and on-premises
- Kubernetes, serverless, and the developer experience
- The four questions that actually decide it
- Where both of them will get you
- How this fits the rest of the stack
- FAQ
The compute prices are close enough to ignore
Line up a general-purpose VM on both - an m6i.large on AWS against a D2s v5 on Azure - and the on-demand hourly rates land within a few percent. Both offer the same discount ladder in different clothes: AWS has Savings Plans and Reserved Instances, Azure has Reserved VM Instances and Savings Plans for compute, and both top out around 70% off for a three-year commitment. Both have a spot market at 60-90% off for interruptible work.
So the honest starting position is that compute is a commodity and neither provider is meaningfully cheaper at it. Anyone who shows you a spreadsheet proving otherwise has either picked a favourable instance family or forgotten a line item.
Where the bills actually diverge is everything wrapped around the compute:
- Egress. Both charge roughly $0.08-0.09/GB after a free tier, and both give you 100GB free per month. This is the single biggest surprise line on either bill.
- Licensing. This is the real gap. Azure Hybrid Benefit lets you bring existing Windows Server and SQL Server licences with Software Assurance, which can cut the cost of a Windows workload by a large margin. Running Windows or SQL Server on AWS means paying for the licence in the hourly rate.
- Support. Both charge a percentage of spend for business-tier support, with a monthly minimum.
If your workload is Linux and open-source, the licensing advantage evaporates and the two are close again.
Identity is the real fork in the road
The most underrated difference between the two clouds is identity, and it is the one that most often makes the decision irreversible.
If your company already uses Microsoft Entra ID (formerly Azure AD) for staff logins - which it does if it uses Microsoft 365 - then Azure gives you single sign-on, conditional access, and RBAC across the cloud with no extra integration work. Your existing groups become your cloud permissions. This is a genuinely large operational saving, and it is why so many enterprises land on Azure without ever running a bake-off.
AWS IAM is more granular and, most engineers would say, more powerful. It is also more work. Policy documents are JSON, the permission model rewards precision, and getting least-privilege right is a real discipline rather than a checkbox. AWS IAM Identity Center can federate with Entra ID, so the integration is possible - it is just something you build rather than something you get.
The practical rule: if the security team already administers Entra ID and wants one place to manage access, Azure has effectively already won the argument, and the feature comparison you are running is theatre.
Hybrid and on-premises
Azure was built by a company that has spent thirty years selling software into datacentres, and it shows. Azure Arc extends Azure management to servers and Kubernetes clusters running anywhere - on-prem, in another cloud, at the edge. Azure Stack runs Azure services on your own hardware. If you have a datacentre you are not closing, Azure treats that as a normal state of the world rather than a migration failure.
AWS has Outposts, which is a rack of AWS hardware you put in your own building, and it works. But the AWS worldview is that on-prem is a waypoint on the road to the cloud, not a destination, and the tooling reflects that.
This matters for regulated industries, manufacturing, healthcare, and anyone with latency-bound equipment that cannot move. For a startup with no servers, it is irrelevant - and if you are a startup with no servers, do not let a hybrid story you will never use drag you toward the more complex option.
Kubernetes, serverless, and the developer experience
Kubernetes. AKS does not charge for the control plane on the free tier; EKS charges about $0.10/hour per cluster, which is roughly $73/month before a single node. For a team running many small clusters, that difference is real. AKS is generally considered the friendlier managed Kubernetes; EKS gives you more control and more rope.
Serverless. Lambda is the more mature product with the deeper ecosystem and the better cold-start story. Azure Functions is capable, and the Durable Functions model for stateful orchestration is genuinely nice, but Lambda is where the patterns and the community are.
The console. AWS has more services and a console that assumes you know which one you want. Azure has a cleaner portal and worse consistency between services - some blades feel a decade newer than others.
The ecosystem. Every Terraform module, every tutorial, every Stack Overflow answer, and every third-party observability tool supports AWS first. Azure support is usually there, sometimes a version behind. This is not a small thing when you are stuck at 2am.
The four questions that actually decide it
Skip the feature matrix. Answer these:
- Does the company already have an Enterprise Agreement with Microsoft, or committed Azure spend it has to burn? If yes, Azure. Committed spend you do not use is money already gone.
- Is identity already in Entra ID, and does the security team want to keep it there? If yes, Azure has a large, permanent operational advantage.
- Are the workloads Windows Server or SQL Server? If yes, Hybrid Benefit makes Azure materially cheaper, and it is not close.
- Is the team hiring, and does it need people who already know the platform? If yes, AWS has the deeper pool of engineers who have run it in anger.
If all four come back neutral - a greenfield Linux stack, a small team, no Microsoft contracts - then pick AWS, because the ecosystem depth means fewer dead ends, and the answer to your weird 2am question is more likely to already exist.
What you should not do is run a three-month evaluation. The technical differences between the two are smaller than the cost of the delay.
Where both of them will get you
Whichever you pick, the failure mode is the same, and it is not the one people plan for. Nobody gets destroyed by choosing the wrong hyperscaler. They get destroyed by the complexity of the one they chose.
The common trajectory: a small team picks a hyperscaler for a workload that is genuinely a container, a database, and a bucket. Eighteen months later they have a VPC with four subnets, a NAT gateway they do not understand, an IAM policy nobody will touch, a Terraform state file one person can unlock, and a bill with sixty line items - to run what is still, fundamentally, a container, a database, and a bucket.
The cost of a hyperscaler is not the invoice. It is the platform engineering you now do instead of shipping. That is the number worth comparing, and it never appears on a pricing page.
How this fits the rest of the stack
Whatever you decide here, the cost of the decision only shows up as a bill. The RunxBuild hosting calculator is the right place to model that before committing: the compute, the database, the storage, the bandwidth, the worker - each one is a separate line item, and the real cost of a platform is the sum, not the headline number. The RunxBuild dashboard is where the team sees the actual usage once it is running.
Useful related references:
- AWS vs Azure vs Google Cloud: Pricing, Services, and the Right Defaults
- GCP vs AWS: Pricing, Network, and When to Pick Each
- AWS vs GCP: Pricing, Network, and When to Pick Each
- Services on RunxBuild
FAQ
Is Azure cheaper than AWS?
For Windows Server and SQL Server workloads, yes - Azure Hybrid Benefit lets you reuse existing licences and the gap can be large. For Linux and open-source stacks, the two are within a few percent on compute, and the difference comes down to egress, support tier, and how well you use committed-spend discounts.
Which is better for Kubernetes?
AKS is friendlier and does not charge for the control plane on the free tier. EKS charges roughly $73/month per cluster before nodes, but gives more control and has deeper third-party tooling. For a team running several small clusters, AKS is cheaper; for a team running one large one, the difference is noise.
Which cloud is better for a startup with no Microsoft contracts?
AWS, on ecosystem depth. More tutorials, more Terraform modules, more third-party integrations, and a larger pool of engineers who have run it. The counter-argument is complexity - if the app is a container and a database, a simpler platform beats both.
Can I use Entra ID with AWS?
Yes. AWS IAM Identity Center federates with Entra ID, so staff can sign in with their Microsoft credentials. It is a supported path that you configure yourself, rather than something that works by default the way it does on Azure.
How long should an AWS versus Azure evaluation take?
Days, not months. The four decisive questions are about contracts, identity, workload OS, and hiring - all of which you can answer without a proof of concept. A long bake-off usually means the real difference is small enough that the delay costs more than the wrong choice would.