Understand the differences between AWS vs Azure, and how to compare the largest public cloud providers.
Enterprise Account Executive
AWS and Azure together take up over 50% of the whole public cloud market share. They have the highest market penetration and arguably the most developed portfolio of cloud services. As they are the go-to vendors for cloud-based solutions, this article aims to look at the range of products they offer and provide a high-level view of the services to help enterprises select between one or the other.
More often than not, a public cloud provider is not a binary choice; 89% of enterprises opt for a multi-cloud environment. Familiarity with Microsoft as a software provider for corporate IT applications makes Azure an attractive choice for many organizations looking for hybrid deployments, and AWS provides some of the most popular cloud services and platforms. In this article, we’ll focus primarily on the core services an organization might consider for deploying cloud-based applications: compute, storage, and networking.
In terms of core capabilities, AWS and Azure offer a wide range of IaaS services, such as virtual machines, storage, and networking. However, the specific services and features provided by each platform may differ. AWS has a broader range of services, while Azure is known for its integration with other Microsoft products and focus on hybrid cloud solutions. Since cloud-based IaaS presents a wholly different way of managing and deploying computing resources, both AWS and Azure have published explicit guidelines around how they think about cybersecurity and security responsibility in the cloud.
Compute typically refers to the virtual nodes provisioned from the cloud service provider’s shared pool of server infrastructure. More recently, compute more broadly includes a variety of services that can host applications and process data. These services provide varying levels of abstraction and can be categorized broadly into Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Function as a Service (FaaS). IaaS offers raw compute resources such as virtual machines, PaaS provides an environment for developers to build, test and deploy software without worrying about underlying infrastructure, and FaaS allows developers to execute discrete functions in response to events, only paying for the actual compute time used.
AWS’ compute service is called Elastic Compute Cloud (EC2) and it offers over 500 instances, providing choices for: processor, storage, networking, operating system, and dedicated hardware add-ons. EC2 supports Intel, AMD, and Arm processors, as well as on-demand EC2 MacOS instances. Azure’s Virtual Machines can scale up to 416 vCPUs and 12 TB of memory per instance. The vendor also supports AMD, Ampere (Arm-based), or Intel processors.
Both AWS and Azure offer different flavors of virtual machines with task-specific configurations, which include:
General Purpose: VMs with balanced CPU-to-memory ratios ideal for testing and development, smaller databases, and regular traffic web servers.
Memory Optimized: provide large, optimized RAM configurations suitable for memory-intensive applications such as: large relational database servers, high-performance caching, and in-memory analytics.
CPU Optimized: CPU-optimized instances are ideal for: high-traffic web servers, modeling and simulation, analytics, batch processes, data processing, and game servers.
Network Optimized: Instances like the EC2 M6in offer higher network bandwidth and dedicated hardware for packet processing for extremely bandwidth intensive operations.
Storage Optimized: can provide both high disk throughput as well as additional high-capacity storage. These are ideal for Big Data applications, large databases, file servers, log processing and storage, and archival and backup.
GPU Optimized: graphical processing unit (GPU) optimized virtual machines provide dedicated resources for GPUs, which are ideal for highly parallelized workloads like AI/ML, as well as video processing and graphics rendering.
AWS currently offers more options for compute-optimized instances compared to Azure. Both AWS and Azure offer pay-as-you-go pricing, but the specifics can vary. AWS charges based on the exact usage, while Azure has more rounded pricing tiers. Comparing costs can be difficult due to the many factors involved, but AWS is generally considered more cost-effective for smaller workloads, while Azure can be more cost-effective for larger, enterprise-scale deployments.
AWS and Azure both offer a variety of storage options tailored to different use cases and requirements. The primary types of storage products offered include:
With object storage, arbitrary and unstructured data (typically files and folders) are uploaded to a namespaced storage pool. Amazon Simple Storage Service (S3) is AWS's object storage solution. It is designed for storing and retrieving unstructured data, ranging from backups and archives to big data analytics and content distribution. S3 is globally available and can be accessed through web protocols, APIs, and the AWS console. Blob Storage is the comparable object storage service offered by Azure. It is designed to store unstructured data, and provides similar access pathways and availability as S3.
Units of storage that behave similarly to a traditional hard drive; they can be attached directly to a VM. Amazon Elastic Block Store (EBS) provides block storage for use with EC2 instances. EBS volumes can be attached to instances to provide persistent storage. EBS offers various volume types, such as general-purpose SSDs, provisioned IOPS SSDs, and HDDs, to meet different performance and cost requirements. Azure Disk Storage is the block storage service provided by Azure. It offers managed disks that can be attached to Azure Virtual Machines. Azure Disk Storage provides different performance tiers, including Premium SSDs, Standard SSDs, and Standard HDDs.
A managed-service that provides a virtual filesystem without needing to manage the underlying storage substrate. Multiple compute nodes can utilize file storage via network protocols like NFS. Amazon Elastic File System (EFS) is a managed file storage service that supports the NFS protocol. It is designed for use with multiple EC2 instances and can scale automatically as the amount of stored data grows. EFS is suitable for big data analytics, content management systems, and shared file storage. Azure Files is a managed file storage service that supports the SMB protocol. It enables users to create and manage file shares that can be accessed by Azure VMs and on-premises systems. Azure Files is suitable for content management, shared file storage, and lift-and-shift migration scenarios.
Both AWS and Azure offer storage services with different performance tiers to meet various use cases. Pricing structures for AWS and Azure storage services can be complex and may differ based on factors such as data storage, data transfer, and access patterns. When choosing storage services, organizations should first decide:
What type of application will be running
Traffic and performance demands
Geographic distribution of users
Overall system architecture
Object storage is ideal for large-scale, unstructured data storage and retrieval, file storage is suitable for shared access to files and directories, and block storage is best for high-performance, low-latency applications that require direct access to storage devices. An organization should settle on design requirements first, then start to make choices around the service and provider. As an example: if your organization needs to serve static web assets to a broad, international user base, then an object-store like Amazon S3 is probably the best choice. If the application is a shared pool of intranet servers for corporate offices, then a file storage service like Azure Files might be ideal.
Both AWS and Azure offer several networking-focused services for organizations to utilize. Networking is often thought of as the fundamental layer over which servers and services communicate, which is true, but the breadth and depth of network services goes far beyond that.
Virtual networks tend to be top-of-mind when thinking about cloud-based networking. Both providers offer full-featured virtual networks. Amazon Virtual Private Cloud (VPC) allows users to create isolated virtual networks in the AWS cloud. Within a VPC, users can define subnets, route tables, and security groups to control network access and traffic flow. Azure Virtual Network (VNet) is Azure's equivalent to AWS VPC, enabling users to create isolated virtual networks in the Azure cloud. VNets also support subnets, route tables, and network security groups for traffic control and access management.
Load balancers are specialized network devices that intelligently manage inbound traffic to a web application or service that runs on a distributed pool of compute resources. Historically these were often hardware devices, but most cloud providers offer them as virtual resources now. AWS provides several load balancing services, including the Application Load Balancer (ALB) for Layer 7 (HTTP/HTTPS) traffic, Network Load Balancer (NLB) for Layer 4 (TCP/UDP) traffic, and Classic Load Balancer for legacy applications. Azure offers the Azure Load Balancer for Layer 4 (TCP/UDP) traffic and the Azure Application Gateway for Layer 7 (HTTP/HTTPS) traffic. Additionally, Azure provides Azure Front Door for global load balancing and application acceleration.
By serving static assets, and even computing closer to the geographic origin of a user request, a CDN can significantly improve the performance of a web application. AWS offers Amazon Cloudfront as a CDN service, while Azure offers the Azure Content Delivery Network. AWS also offers edge computing via its AWS Lambda Serverless platform.
DNS translates the url and domain names everyone is familiar with to IP addresses for specific endpoints and services. AWS offers Route53, a highly available and scalable DNS service that allows users to manage domain names, create and manage DNS records, and configure routing policies. Azure DNS provides a similar offering, enabling users to manage domain names, create and manage DNS records, and configure traffic routing.
In the context of cloud-based environments, VPN connections are especially important for organizations that want to offer hybrid environments, or maintain direct, private connections between physical locations like offices and on-premise datacenters, and their cloud environments. AWS provides AWS Site-to-Site VPN for secure connections between on-premises networks and VPCs. AWS Direct Connect establishes dedicated network connections from on-premises data centers to AWS, bypassing the public internet to offer a private, encrypted connection. Azure offers Azure VPN Gateway for secure site-to-site VPN connections between on-premises networks and VNets. Azure ExpressRoute provides dedicated private connections between on-premises data centers and Azure for organizations with a hybrid resource footprint.
Effectively calculating and planning cloud costs is an entire science unto itself. It’s difficult to provide an exact comparison for cloud providers without having ample context regarding the intended usage.
An organization should take the time to go through an exercise of plotting exactly what cloud resources best suit their application needs and scaling demands. Will this be the first application in a complete lift-and-shift initiative? Will this be a hybrid deployment with a lot of ingress and egress traffic? Does it make sense to write-off a provider as having expensive block storage, when 90% of usage will be object stores? Achieving the ideal cost scenario requires some forethought and planning. Additionally, both providers can potentially provide volume discounts on cost with contracts; a customer just needs to agree to certain usage thresholds over a window of multiple years, and a discount is applied over all service usage.
So, how should an organization choose which provider is best suited for their needs? Reinforcing a theme throughout this article: it depends. AWS and Azure cater to a wide range of customers, from individuals and small businesses to large enterprises and public sector organizations. Both cloud providers have extensive service offerings that can meet various customer needs.
AWS has a variety of offerings that are great for small businesses and startups. Their free-tier is generous, and an MVP application can be deployed with minimal cost. At the other end of the spectrum, AWS offers globally distributed, high-performance services for large enterprises and organizations with an international footprint. As one of the oldest and most established cloud providers, AWS has a broad and expanding service portfolio, and a strong community of 3rd-party resources and education material.
Azure will always be a strong choice for enterprise organizations that are already Microsoft-centric. If a company is already heavily invested in the Microsoft ecosystem, Azure provides a lot of first-class tools that make integration seamless. Large enterprise customers are an ideal use-case for Azure products. With their recent acquisition of OpenAI and a highly-publicized initiative to build generative AI and LLMs into their products, Azure also makes a solid choice for organizations that are looking to take advantage of these tools in their enterprise workflows.
Azure might be right for you if you are:
Operating in a hybrid environment
Migrating an existing IT infrastructure to the cloud
Are heavily invested in the Microsoft ecosystem.
AWS might be right for you if you:
Are a small startup building a web-facing application
Need to serve requests from a global user base.
Need access to a wide range of managed services and technology, such as serverless.
Some enterprises end up with a multi-cloud approach, using both AWS and Azure. But dealing with both providers simultaneously may result in a lot of overhead cost. To get access to the best of both worlds, a cloud management tool can help you deal with vendor-specific knowledge and manage your DevOps teams. To find out how Divio’s cloud management platform can help you manage your AWS or Azure environments, book a customized demo.