Blog

Deciding between Amazon Web Services, Microsoft Azure, and Google Compute

August 22, 2017 | Ken Leoni

Deciding between Amazon Web Services, Microsoft Azure, and Google ComputeAs the cloud computing industry continues to mature, the big players -  Amazon, Microsoft, and Google - are all fighting for your business.

It is difficult, if not impossible, to draw a definitive conclusion as to whether one platform is better than another because they all offer cloud technology and services that are excellent in their own right.  So how you do decide?

Cloud service providers deliver technology and services that are the same but different.  Meaning they all deliver compute, storage, database services and more, but their implementations and delivery models differ. The challenge is ferreting out the attributes and capabilities that could potentially make one a better fit than the others.

Compute – Infrastructure as a Service (IaaS)

Whether you are considering Amazon’s EC2, Microsoft’s Azure, or Google’s Compute Engine, they all provide the capacity and speed to meet most company’s needs.  Your decision criteria should include how your organization intends to leverage (IaaS). 

If you’re looking for a feature rich, customizable platform, and aren’t particularly enamored with the Windows platform, then EC2 can be very appealing.  On the other hand, if you’re heavily vested in the Microsoft technology stack and want to operate a Windows based Hybrid Infrastructure, then Azure is an undeniable contender.  Those looking for a cloud platform that supports custom machine types  may well gravitate to Google Compute Engine.  

The above guidelines are generalizations and “your mileage may vary”.  For example, there are many companies leveraging AWS in conjunction with a Microsoft technology stack (i.e. AWS Directory Service or Amazon Virtual Private Cloud).  Also consider that Microsoft is no longer  “Windows only” as Azure has support for a number of Linux variants.  In addition, Google Compute Engine also supports both Windows and several Linux variants.  


Location

Amazon having some 44 worldwide availability zones, Microsoft growing out to 38 regions, and Google fast-tracking to 33 zonesDatacenter location is also a factor, especially if your requirements span multiple continents. While we can certainly go through the exercise of touting Amazon's 44 worldwide availability zones, Microsoft's growing out to 38 regions, and Google's fast-tracking to 33 zones, the more significant part of the equation is: How important is data locality to your organization? 

If your needs are in North America, EMEA (Europe, the Middle East, and Africa), or Asia Pacific, then it's a tossup. However, expand beyond those regions and you may well find some differences. Cloud infrastructures are ever expanding, so if it has been a little while since you performed due diligence, it may be a good time to take a second look at each provider's infrastructure.

Pricing

When assessing which IaaS provider best suits your organization’s needs, you’ll also want to pay close attention to how functionality is priced. Unfortunately, there is no uniformity in pricing that allows for easy comparison between the providers. Perhaps this is deliberate so that each provider can tout what is make them different,  and this certainly makes direct comparisons more confusing for the IT consumer. The best analogy I can give is that it is like comparing two restaurants with different cuisines, and one restaurant prices its meals a la carte while the other prices based on the meal size.  Which is better?

For example, all three provide the ability to leverage unused hardware capacity at a reduced price - Amazon EC2  Spot instances, Google’s Preemptible Virtual Machines and the more recent Azure Low-Priority VMs.  All help users reduce their costs, but the providers’ approach and pricing models differ: EC2 Spot Instances are bid based while Google’s Preemptible VMs have a fixed price. Which is better? Well, it depends on your workload and application behavior.

Storage – Infrastructure as a Service

All the providers offer block storage in the form of traditional HDD (hard disk drive) as well high performance SSD (solid state drive).  Depending on the provider,  there may also be a 3rd tier in which SSDs are provisioned at even higher levels of performance.

  Azure Premium Storage Amazon Elastic Block Store Google Persistent Disk
IOPs per disk 7500 General Purpose: 10,000
Provisioned: 20,000
40,000 Read
30,000 Write
Disk size 32GB - 4TB General Purpose: 1GB - 16TB
Provisioned: 4GB - 16TB
1GB - 64TB
Throughput per disk 200 MB/sec General Purpose: 160 MB/sec
Provisioned: 320 MB/sec
800 MB/sec Read
400 MB/sec write

 

The matrix reflects the maximum available performance achievable with non-attached SSDs.

Amazon and Google support attached Non-Volatile Memory Express (NVMe) based SSDs which yield off the chart performance.  Amazon requires you to spin up an EC2 I3 instance, while Google allows you to add a local SSD.  NVMe SSDs deliver up to 680,000 Read IOPs / 360,000 Write IOPs making them ideal for applications that require high IOPs.


Database as a Service - Relational Databases

Database as a Service - Relational DatabasesThere are clear differences when assessing the three providers in terms of their relational database as a service capability.  Amazon has an advantage in the scope of its relational database support, but if you are a Microsoft SQL Server only shop and you don't need to support other databases, then Azure makes a compelling case. 

  Amazon RDS Microsoft
Azure SQL
Google
Cloud SQL
Amazon Aurora x    
MariaDB x    
Microsoft SQL Server x x  
MySQL x   x
Oracle x    
PostgreSQL x   x

 

Although Google supports a few relational databases, it focuses more on its own Cloud Spanner database, which offers unique capabilities and functionality:

  • Relational database optimized for OLTP

  • ANSII 2011 SQL with extensions

  • Scales horizontally (e.g. add more servers to scale up)

  • Supports ACID transactions, automatic sharding, and global consistency


If your decision criteria includes support for a broad set of relational databases, Amazon holds a definite advantage.  Looking for a relational database with epic scaling capabilities? You can’t go wrong with Google Cloud Spanner.  Ultimately it is more about the match with the technology direction and priorities of your organization than whether a given database cloud service provider is objectively “better”.


Database as a Service  - NoSQL

Have data that is unstructured?  Need a dynamic schema where speed and scalability are important?  NoSQL databases are the answer as they are schemaless and scale horizontally (the database is distributed across multiple servers in individual partitions - “shards”).  As the database grows, scaling it out is simply a matter of adding more servers with disks, which is easily done with a cloud based infrastructure. 

  • Amazon: DynamoDB

    Credit Amazon with bringing NoSQL (Not Only SQL) to the mass market with its popular DynamoDB NoSQL database offering, which utilizes data residing on SSDs to provide low latency. DynamoDB scales horizontally, and Amazon’s unique auto scaling feature adjusts the infrastructure based on upper and lower bounds for read and write capacity as specified by the administrator.

    DynamoDB replicates its data across three geographically dispersed facilities in an AWS region.  Since replicating to other locations isn’t instantaneous,  “consistency” can be a concern, and the database supports two consistency models when reading data:

    1. Eventual Consistent Reads (default) – The read returns whatever is there.  This is faster, but may not return the most current data.

    2. Strongly Consistent Reads (Read-after-Write) – The read only returns a result after all writes have been completed.

    The consistency model you use with a NoSQL database will depend on your application.  Also note that DynamoDB does not support ACID transactions.

  • Google: Cloud Datastore and Bigtable

    Google offers two NoSQL database services: Cloud Datastore and Bigtable:

    • Cloud Datastore

      Cloud Datastore is competitor to DynamoDB. Datastore’s forte is mobile and web applications which typically require database functions that focus on transactions and queries. The data structure is represented as objects that are defined and then written into Datastore.  Although designed as NoSQL, data can still be represented in a row-based format.

      Datastore automatically scales by sharding the data and replicating across regions, so it can span across a wide geographic area.

      In addition to Eventual and Strong consistency Datastore provides SQL like ACID transactions on subsets of the data known as Entity Groups.  

      The GQL API is close enough to SQL so that most SQL developers will pick it up quickly.   

    • Bigtable 

      As the name implies, Bigtable is a distributed database system that is structured as a large table and is optimized for data analytics. The technology can ingest and analyze large data sets, up to petabytes in size, and do so with very low latency. Unlike Datastore, Bigtable doesn’t replicate or support any sort of ACID transactions.  The technology uses the HBase API, making it readily compatible with the Hadoop ecosystem as well as other Big Data tools.


  • Microsoft: Azure Cosmos DB

    The newest NoSQL entrant is Azure Cosmos DB.  Cosmos DB is the only NoSQL technology that supports 5 consistency models,  giving the user the ability to balance performance with data accuracy.  Cosmos DB is also a game changer because of the flexibility provided with its support of multiple data models including key/value, document, and graph  - and it also can support relational data as well.

    Being the latest and greatest, Cosmos supports transactions with ACID guarantees.

    Cosmos DB also can replicate is data across multiple Azure regions.  If global locality of the data is important then Cosmos DB is certainly worth a closer look!



Organizations seeking NoSQL database coverage have multiple options.  Your choice will most likely depend on what kind of data you have and how you intend to leverage the data.


Conclusion:

An apple to apples comparison between Amazon Web Services, Microsoft Azure, and Google Cloud is a difficult proposition.  When looking at IaaS,  it is ultimately about understanding the unique attributes of your application(s) and determining which cloud provider best addresses your needs.  Is your application IO intensive? Is locality of the data important to you?  What kind of configuration flexibility do you require when spinning up a VM? 

Pricing is an important consideration, and the pricing and discount models for AWS , Azure,  and Google vary.  Which cost structure is most beneficial will vary based on the size, volatility, and timing of the workload generated.   In order to avoid costly surprises, it is important to understand your baseline and peak workloads and how those workload levels translate into expenses.

When assessing Database as a Service there is no doubt that all three providers have ecosystems that can deliver the necessary resilience and performance.  Organizations need to consider whether they want to use widely available databases (i.e. MySQL, PostgreSQL, or Microsoft SQL),  or proprietary databases (i.e. DynamoDB, Bigtable , or Cosmos DB), or a combination of both. 

Finally, take stock as to what your technology stack and IT resources look like today and what they’ll look like in the future.  Remember that whatever cloud provider(s) you choose, you could end up living with them for a while,  so make sure you have the appropriate IT resources in place for initial deployment and then for ongoing maintenance, monitoring and service delivery.

Want to learn more?

Download our AWS vs Azure comparison matrix -  Amazon and Microsoft each offer cloud technology and services that are excellent in their own right. Which attributes and capabilities are a better fit for your organization??

Download the comparison:   AWS vs Azure