AWS vs Azure vs Google Cloud: Storage and Compute Comparison

Choosing a public cloud service provider (CSP) has become a complex decision. Today, it’s no longer a question of which option you should work with, but rather, how to achieve optimal performance and distribute risk across multiple vendors—while containing cloud compute and storage costs at the same time.
In a recent Virtustream/Forrester survey of more than 700 cloud decision makers, 86% of respondents said that their enterprises are deploying workloads across more than one CSP. We learn from the same survey that the prime motivation for adopting a multi-cloud strategy is to improve performance, followed by cost savings and faster delivery times. Today, the three leading CSPs are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP), with respective market shares of 62%, 20%, and 12%.
In this post, the first in a two-part series, we will compare and contrast what AWS, Azure, and GCP offer in terms of storage, compute, and management tools. In the following post, we will discuss big data and analytics, serverless, machine learning, and more. Armed with this information, it should be easier for you to map out your multi-cloud strategy.

Service-to-Service Comparison

Enterprises typically look to CSPs for three levels of service: Infrastructure as a Service (IaaS, i.e., outsourcing of self-service compute-storage capacity); Platform as a Service (PaaS, i.e., complete environments for developing, deploying, and managing web apps); and secure, performant hosting of Software as a Service (SaaS) apps.
Keeping these levels in mind, we have chosen to compare:
  1. Storage (IaaS)
  2. Compute (IaaS)
  3. Management Tools (IaaS, PaaS, SaaS)
Note:   We won’t be comparing pricing since it is quite difficult to achieve apples-to-apples comparisons without a very detailed use case. Once you have determined your organization’s CSP requirements, you can use the CSP price calculators to check if there are significant cost differences: AWSAzureGCP.

Storage

The CSPs offer a wide range of object, block, and file storage services for both primary and secondary storage use cases. You will find that object storage is well suited to handling massive quantities of unstructured data (images, videos, and so on), while block storage provides better performance for structured transactional data. Storage tiers offer varying levels of accessibility and latency to cost-effectively meet the needs of both active (hot) and inactive (cold) data.
In terms of differentiators, Azure takes the lead in managed DR and backup services. When it comes to managing hybrid architectures, AWS and Azure have built-in services, while GCP relies on partners.
AWSAzureGCP
Object storageAmazon Simple Storage Services (Amazon S3):
The very first AWS public service
Blob StorageGoogle Cloud Storage
VM disk storageAmazon Elastic Block Store (Amazon EBS)Azure Managed DisksPersistent Disk (both HDD and SSD)
File storageAmazon Elastic File System (Amazon EFS)Azure FilesCloud Filestore
Disaster recoveryProvides a set of cloud-based disaster recovery servicesSite Recovery (DRaaS)Does not provide out-of-the-box DR or backup services
BackupAmazon S3 is often used for secondary backup storageBackup (built into the Azure platform)
Archive storage●      S3 One Zone-Infrequent Access(introduced April 2018)
●      Amazon Glacier, with data querying capabilities
Azure Long-Term Storage:
●      Cool Blob Storage (slightly lower availability than Hot)
●      Archive Storage (offline blob storage)
Archival Cloud Storage:
●    Nearline (low frequency)
●    Coldline (lowest frequency)
Bulk data transfer●      AWS Import/Export Disk:
Shipping disk drives
●      AWS Snowball(device-based)
●      AWS SnowMobile:
Exabyte-scale data transfer via ruggedized shipping container
●      Azure Import/Export service:
Shipping disk drives
●      Azure Data Box Disk service (in preview)

Storage Transfer Service
Hybrid supportAWS Storage Gateway: Provides a managed virtual tape infrastructure across hybrid environmentsStorSimple: Enterprise-grade hybrid cloud storageRelies on partners such as Egnyte

Compute

The CSPs offer a range of predefined instance types that define, for each virtual server launched, the type of CPU (or GPU) processor, the number of vCPU or vGPU cores, RAM, and local temporary storage. The instance type determines compute and I/O speeds and other performance parameters, allowing you to optimize price/performance according to different workload requirements. It should be noted that GCP, in addition to its predefined VM types, also offers Custom Machine Types.
The CSPs offer pay-as-you-go PaaS options that automatically handle the deployment, scaling, and balancing of web applications and services developed in leading frameworks such as Java, Node.js, PHP, Python, Ruby, and more.
AWS offers auto scaling at no additional charge, based on scaling plans that you define for all the relevant resources used by the application. Azure offers auto scaling per app, or as part of platforms that manage groups of apps or groups of virtual machines. GCP offers auto scaling only within the context of its Managed Instance Groups platform.
Both AWS and Azure offer services that let you create a virtual private server in a few clicks, but GCP does not yet offer this capability.
AWSAzureGCP
Virtual serversAmazon Elastic Compute Cloud(Amazon EC2)Virtual Machines(Windows or Linux servers)Compute Engine
PaaSElastic BeanstalkAzure Cloud ServicesGoogle App Engine
ScalingAWS Auto Scaling●      Azure Autoscale(per app or for a group of apps as part of an Azure App Serviceplan)
●      Virtual Machine Scale Sets (for hyperscale, high-availability apps)
Through managed instance groups
Virtual private server supportLightsail  Virtual machine (VM) imageN/A

Management Tools

As you may have already experienced, managing and orchestrating cloud resources across multiple business units and complex infrastructures can be a daunting challenge. All three CSPs offer platforms and services to streamline and provide visibility into the organization, configuration, provisioning, deployment, and monitoring of cloud resources. These offerings range from predefined deployment templates and catalogs of approved services to centralized access control. However, AWS and Azure seem to have invested more heavily in this area than GCP, and AWS even offers outsourced managed services (AWS Managed Services).
AWSAzureGCP
Server manage-
ment services
AWS Systems Manager: Visibility & automation across groups of resourcesAzure Operational Insights: Operational data analysis, SaaSN/A
Cloud deployment templatesAWS CloudFormation:
Text files for modeling & provisioning cloud resources
Azure Resource Manager: Deploy & control access to categorized resources; includes templates (Azure Building Blocks)●    Resource Manager: Group, organize, & control access to resources; track & manage projects
Template-
driven deployment
Logging & monitoring●    Amazon CloudWatch: Real-time visibility into apps & infrastructure
●    AWS CloudTrail: Logging & monitoring of AWS accounts
Azure Monitor,including Log Analytics(data collection & proactive insights) and Application Insights(Application Performance Management platform)Google StackDriver, including monitoring, logging, error reporting, tracing, & debugging
Server automation●    AWS OpsWorksManaged instances of Chef & Puppet
●    AWS Service CatalogCatalog of IT services approved for AWS
●    Azure Resource Manager (see above)
●    Azure Automation
●    VM extensions: Post-deployment configuration & automation
N/A

And the Winner Is…

In today’s multi-cloud world, you shouldn’t be seeking to identify a single “winner,” but rather how to optimally distribute workloads across multiple CSPs. As you map out your multi-cloud strategy, bear in mind that in the key categories of storage, compute, and management tools, AWS and Azure offer a more complete and mature stack than GCP. In general, AWS’ services and products are the most comprehensive, but they can also be challenging to navigate and manage. Also consider that if your company is already using Microsoft’s development tools, Windows servers, and Office productivity applications, you will find it very easy to integrate with Azure.

Popular posts from this blog

"Amazon.Lambda.RuntimeSupport" .NET Core with AWS Lambda (for Microsoft Developers)

Working with AWS Fargate (Lots of fun)

Azure to AWS services comparison/migration