Both Microsoft Azure and Amazon Web Services offer a lot of data services. So many services that it can be hard to comprehend how the compare without a scorecard. So, that’s what I did here, I put together a quick image to help you make sense of all the offerings current available (as of March, 2018). Essentially, I wanted to build a cheatsheet for Azure vs. AWS data services comparison purposes.
It is my hope that this post will be a starting guide for you when you need to research these services. I have included relevant links for each service, along with some commentary, in the text of this post below. I’ve done my best to align the services, but there is some overlap between offerings. Some offerings, like data warehousing and cache, are easy to discern.
OK, let’s break these down into groups. I’m not going to do a feature comparison here because these systems evolve so quickly I’d spend all day updating the info. Instead, you get links to the documentation for everything and you can do your own comparisons as needed.
Relational
Azure offerings: SQL Database, Database for MySQL, Database for PostgreSQL
RDS is an umbrella term, as it is six engines in total, and it includes Amazon Aurora, MySQL, MariaDB, Oracle, Microsoft SQL Server, and PostgreSQL. I’ve listed Aurora as a distinct offering because it is the high-end service dedicated to MySQL and PostgreSQL. Since Azure also offers those distinct services it made sense to break Aurora out from RDS. (Or, to put it another way, if I didn’t call out Aurora here you’d finish this post and say ‘what about Aurora’, and now you don’t have to ask that question.)
NoSQL – Key/Value
Azure offerings: Cosmos DB, Table Storage
AWS offerings: DynamoDB, SimpleDB
Cosmos DB is the major NoSQL player for Azure, as it does everything (key/value, document, graph) except relational.
NoSQL – Document
Azure offerings: Cosmos DB
AWS offerings: DynamoDB
Azure used to offer DocumentDB, but that platform was sunset when Cosmos DB came alive.
NoSQL – Graph
Azure offerings: Cosmos DB
AWS offerings: Neptune
As of March 2018, Neptune is in Preview, so the documentation is likely to change in the coming weeks (well, that’s my assumption, because Neptune has been in Preview since November.)
Data Warehouse
Azure offerings: SQL Data Warehouse
AWS offerings: Redshift
It feels like these two services have been around forever. That’s because, in internet years, they have. Redshift goes back to 2012, and SQL DW goes back to 2009. That’s a lot of time for both Azure and AWS to learn about data warehousing as a service.
Cache
Azure offerings: Redis Cache
AWS offerings: ElastiCache
Both of these services are built upon Redis, so the real question here is if you want to use Redis-as-a-service from a 3rd party provider as opposed to just using it Redis itself.
Pricing
Azure Pricing calculator: https://azure.microsoft.com/en-us/pricing/calculator/
AWS Pricing Calculator: https://calculator.s3.amazonaws.com/index.html
The pricing calculators give you the best understanding of capacity. You could spend days trying to figure out the resource limits for each service listed on this page. But if you start with the calculator you get an idea of the most important thing, the cost of the service. Here’s an example of what I mean. Let’s look at something that should be an easy comparison: SQL Data Warehouse versus Redshift. I will compare a 100% utilized instance for each.
Here is the pricing summary for Azure SQL Data Warehouse, optimized for capacity, and with storage of 10 TB:
The calculator tells me the two most important things I need to know: That I pay for storage, and for something called a DWU. So, that’s the stuff to research next.
For Redshift, we have this:
AWS seems to be charging for compute power only and not for storage. Also, this is the cost for only one node, whereas SQL Data Warehouse will use more than one node to distribute the workload. And this doesn’t help explain failovers, maintenance, disaster recovery, etc.
It can be frustrating to compare the data services being offered between Azure and AWS. Part of me thinks this is done on purpose by both companies in an effort to win our favor without giving away more information than is necessary. This is a common practice, and I’m not bashing either company for doing what has been done for centuries. I’m here to help others figure out how to make the right choice for their needs. At the end of the day, I believe both Amazon and Microsoft want the same thing: happy customers.
By starting at the pricing pages I can then dive into the specific costs, and use that as a first level comparison between the services. If you start by looking at resource limits and maximums you will spend a lot of time trying to compare apples to oranges. Just focus on costs, those resources, throughput, and DR. That should be a good start to help you determine the cost, benefit, and risk of each service.
[UPDATE: I did a quick comparison of Azure Cosmos DB costs vs DynamoDB and Neptune costs in this post. You’re welcome]
Summary
I hope you find this page useful for referencing the many data service offerings from both Microsoft Azure and Amazon Web Services. I will do my best to update this page as necessary, and offer more details and use cases as I am able.
Thanks for this. I suspect most on the typical executive floor would want to know that a shift can be made from one environment to the other (Azure to AWS or the other direction). I personally would want to at least have written steps in sufficient detail to be able to effectively work, at a minimum, a table-top exercise to show it could be done.
That’s a great question, and I don’t have an answer. Although I suspect that the services are interested in helping you migrate easily between each other. They might both be focused on getting folks off Oracle first, though.
Migrating data between AWS and Azure isn’t that hard right now. The real trouble comes when trying to migrate all the other pieces of your applications. If built with migration in mind, it should be easy to simply swap out connection strings and let the app continue without needing to worry where the data is stored.
A great concise article for someone wondering which DB to start with Cosmos of Dynamo! Thank you for this comparison and also for that awesome cheatsheet of various Db options