Skip to content

AWS vs Azure in 2019: An In-Depth Technical and Business Comparison

The public cloud computing market is dominated by two heavyweights: Amazon Web Services (AWS) and Microsoft Azure. AWS pioneered the Infrastructure-as-a-Service model and remains the clear leader, but Azure has been growing rapidly and closing the gap, especially among enterprise customers.

In this comprehensive guide, we‘ll compare AWS and Azure across their core services, pricing models, innovation pace, and suitability for different use cases. We‘ll draw upon third-party data and real-world experiences to highlight the strengths, weaknesses, and key differentiators of each cloud. By the end, you‘ll have a solid framework for deciding which cloud – AWS or Azure – is the best long-term bet for your business.

AWS and Azure by the Numbers

Let‘s start with some data to set the stage on just how big these two cloud titans are:

  • According to Gartner, AWS is the clear market share leader in cloud IaaS with 47.8% share in 2018. Microsoft Azure is second at 15.5%, growing from 12.7% in 2017. [1]

  • In Q1 2019, AWS generated $7.7 billion revenue, up 41% year-over-year. Azure revenue grew 73% to $4.1 billion in the same period. [2]

  • AWS has 165+ services across compute, storage, database, analytics, networking, machine learning, and more. Azure has 100+ services in similar categories as well as areas like mixed reality and IoT.

  • AWS has 69 Availability Zones across 22 regions. Microsoft Azure has the broadest coverage with 54 regions worldwide. Both are continuously expanding their global infrastructure footprint.

So while AWS is bigger, Azure‘s growth is accelerating. In fact, a recent Goldman Sachs survey of IT executives found that 56% expect to increase spend with Azure vs 48% with AWS over the next 3 years [3]. Let‘s peel back the onion to understand what‘s driving this.

Compute Services: EC2 vs Azure VMs

Compute is the heart of the cloud and both providers offer a range of options for deploying virtual machines (VMs). EC2 is the flagship compute service in AWS. It provides secure, resizable VMs in the cloud. You can choose from 275+ instance types [4] grouped into families optimized for particular workloads (e.g. compute, memory, storage, accelerated computing).

Azure‘s compute offering is very similar. Azure Virtual Machines let you provision Windows and Linux VMs with up to 416 vCPUs and 12 TB memory [5]. Like EC2, Azure has different VM series tailored for workloads.

A key differentiator for Azure is the ability to leverage existing Microsoft licenses in the cloud. Many organizations have invested heavily in Windows Server, SQL Server, SharePoint, Dynamics, and other Microsoft stack products. With Azure Hybrid Benefit, you can use on-prem licenses to spin up Azure VMs running Microsoft software at much lower cost vs AWS.

Azure also has tight integrations with Microsoft developer tools like Visual Studio. Developers can easily debug, test, and deploy .NET apps to Azure. However, AWS supports the broadest selection of Linux/Unix OSes and programming languages overall for DevOps teams.

Storage Services: S3 vs Blob Storage

Both clouds offer object, block, and file storage services for structured and unstructured data. Amazon S3 invented the notion of cloud object storage – a scalable, durable repository for any type of data.

Today S3 stores over 30 trillion objects and regularly peaks at 50-80 million requests per second [6]. It‘s used by millions of applications for content storage and distribution, backup, big data analytics, IoT, and more. S3 offers 6 different storage classes to optimize for access frequency vs cost. The S3 API has also become the de facto standard, supported by many third-party tools.

Azure Blob Storage is the equivalent service from Microsoft. It shares many characteristics with S3, including unlimited scalability, multiple access tiers, and high durability/availability. However, Azure Blob Storage offers some unique capabilities:

  • Immutable storage for compliance with regulations like SEC Rule 17a-4
  • Object-level tiering between hot, cool, and archive tiers
  • Lifecycle management policies to automate tiering and retention

For VM disk storage, AWS Elastic Block Store (EBS) provides network-attached block storage volumes for EC2 instances. EBS volumes can deliver up to 256,000 IOPS and 4,000 MB/s throughput [7]. They can be optimized for performance, throughput, or cost depending on the volume type.

Azure Premium and Standard Disks provide similar block storage capabilities for Azure VMs. Both support features like disk encryption, snapshots, and images. Azure Ultra Disk is a unique offering that provides sub-millisecond latency and 1200 MB/s throughput for the most demanding workloads [8].

Database Services: RDS vs Azure SQL

When it comes to relational databases, both clouds make deployment and management easy. Amazon Relational Database Service (RDS) allows you to create MySQL, MariaDB, PostgreSQL, Oracle, and SQL Server databases in minutes with automated provisioning, patching, backup, and multi-AZ failover. Aurora is AWS‘s own MySQL/PostgreSQL-compatible database that delivers higher performance and availability than open source options.

Azure SQL Database is a managed service based on the latest SQL Server Enterprise Edition. Microsoft handles routine tasks like updating, patching, and monitoring. Azure SQL Database offers three deployment options:

  1. Single database with dedicated compute and storage resources
  2. Managed instance – a fully-managed version of SQL Server best for lift-and-shift migrations
  3. Elastic pool – a collection of single databases with shared compute and storage

One advantage of Azure SQL is its near 100% compatibility with on-prem SQL Server in terms of SQL syntax and features. This makes it easy to move existing SQL Server apps to the cloud or implement hybrid architectures. AWS supports SQL Server too but the underlying service is still based on AWS infrastructure.

For NoSQL and non-relational data, AWS and Azure have several options but DynamoDB and CosmosDB are the most notable. DynamoDB is a fully-managed key-value and document database known for predictable performance at any scale. It can handle over 10 trillion requests per day while ensuring single-digit millisecond latency [9].

Azure Cosmos DB is a multi-model database that can scale across any number of Azure regions worldwide. It supports multiple data models and APIs including document, graph, key-value, table, and Cassandra. With features like multi-master replication, MongoDB compatibility, and multiple well-defined consistency models, it‘s a powerful choice for globally distributed apps.

Serverless Computing: Lambda vs Azure Functions

Serverless is an increasingly popular paradigm where the cloud provider dynamically manages the servers to run your code based on events or HTTP requests. You simply provide the function code and configuration. AWS Lambda is one of the most mature serverless platforms, generating strong adoption and rich tooling from AWS (e.g. API Gateway, CloudWatch, CloudFormation) and the open source community.

Lambda natively supports code written in Node.js, Python, Ruby, Java, Go, and C#. You can also run code in other languages by deploying it with a custom runtime. Lambda is priced based on the number of function requests ($0.20 per 1M requests) and GB-seconds of compute time ($0.0000166667 per GB-second) [10], enabling significant cost savings vs always-on infrastructure for many workloads.

Azure Functions is Microsoft‘s event-driven, serverless platform. It supports C#, JavaScript, Python, and PowerShell functions triggered by events in Azure services, third-party services, or on-prem systems. For development, you can code functions right in the Azure portal, Visual Studio, or VS Code. Azure Functions offers a similar pay-per-use pricing model as Lambda.

One unique aspect of Azure Functions is the built-in Durable Functions extension. This enables stateful functions with long-running workflows, saving data between executions. This is useful for complex process orchestration and highly parallel workloads.

AI and Machine Learning Capabilities

Both clouds have invested heavily in managed services for AI and machine learning. Some key AWS offerings include:

  • Amazon SageMaker – end-to-end platform to build, train, and deploy ML models at scale
  • AWS DeepLens – programmable video camera for deep learning
  • Amazon Textract – intelligently extracts text and data from documents
  • Amazon Personalize – real-time personalization and recommendation service

Microsoft takes a different approach, focusing more on pre-built AI services vs platforms. Some core Azure AI services are:

  • Azure Machine Learning Studio – drag-and-drop interface to build and deploy models without coding
  • Azure Cognitive Services – collection of APIs for vision, speech, search, language, and decision-making
  • Azure Bot Service – tools to build, test, deploy, and manage intelligent chatbots
  • Azure Databricks – Apache Spark-based analytics platform optimized for Azure

Both clouds enable powerful AI scenarios and have pros and cons. AWS tends to offer more pre-built models and frameworks for expert data scientists and developers. Azure shines with its higher-level services that make it easy to infuse AI into apps without ML expertise.

Hybrid Cloud and Edge Computing

Many enterprises operate in a hybrid world, combining on-prem IT with public cloud. AWS and Azure both offer services to facilitate seamless hybrid architectures:

  • AWS Outposts is a fully-managed service that brings native AWS services, infrastructure, and operating models to on-prem datacenters. VMware Cloud on AWS lets you run VMware vSphere workloads in the AWS cloud.

  • Azure Stack is Microsoft‘s hybrid cloud platform for running Azure services in your datacenter. It comes in two forms – Azure Stack Hub for connected environments and Azure Stack Edge for compute at the edge. Azure Arc enables deployment of Azure services anywhere, including other clouds.

The ability to run cloud services on-prem with consistent APIs and management tools is a key battleground as cloud spending shifts to hybrid use cases. Azure‘s hybrid offerings are generally seen as more mature given Microsoft‘s history with on-prem enterprise software.

Pricing Comparison

Both providers use pay-as-you-go pricing for most services, but offer discounts for prepaid reserved instances and negotiated enterprise agreements. Comparing exact pricing is tricky as it depends on the specific resources, usage, and region.

That said, several studies have attempted to analyze cloud costs across providers. A 2018 RightScale report [11] benchmarked prices for a sampling of common cloud services:

Service AWS Azure
Compute (4xlarge, 16 vCPU) $0.768 $0.800
Block Storage (4x1TB volumes) $411 $540
Object Storage (500 TB) $12742 $14988
Relational Database (4xLarge) $1.52 $1.95

In this analysis, AWS was less expensive across the board. However, a 2019 Cockroach Labs report [12] that looked specifically at managed databases found that Azure SQL Database on the serverless tier was up to 87% less expensive than Amazon Aurora at higher throughput levels.

The key takeaway is that cloud pricing is complex. The only way to truly compare costs is to map your specific requirements to each provider‘s offerings and run the numbers. Both AWS and Azure offer cost calculators and have teams to help estimate and optimize costs.


In the AWS vs Azure debate, there‘s no universally right answer. Both are feature-rich, enterprise-grade cloud platforms used by millions of customers worldwide. AWS has an edge in maturity, breadth of services, and a vibrant open source community. Azure stands out for its hybrid cloud capabilities, integration with the Microsoft ecosystem, and higher-level AI services.

Ultimately, the optimal cloud depends on your specific business needs, existing IT investments, and application requirements. For Microsoft-centric IT departments, Azure will likely be the path of least resistance. For Linux-centric, cloud-native organizations, AWS is often the default choice. And for many, a multi-cloud approach leveraging both platforms for different workloads is ideal.

The good news is that you can‘t go wrong with either cloud as long as you follow architectural best practices. Focus on building loosely-coupled, API-driven applications that minimize vendor lock-in. Over time, technologies like containers and service meshes will make it easier than ever to operate across clouds and migrate if needed.

The public cloud wars are far from over, but one thing is certain: AWS and Azure will both continue to innovate at breakneck speed. As an IT leader, your job is to harness that innovation to digitally transform your business at the pace required to compete in your industry.