One of the most important decisions your company will make this decade is whether or not to migrate to the cloud (if you haven’t made that decision yet, check this out). Also, high up on that list will be your answer to the question:
Which cloud provider should you go with?
Start Googling around and you’ll find that there’s no easy answer. There are conflicting recommendations and cloud reviews everywhere, and you’ll quickly get lost in the technical specification documents.
The cloud market is largely dominated by two players – Amazon Web Services (AWS) and Microsoft Azure. As you can see here, together they take up about half of the total cloud computing market.
You’ll likely be tossing up between these juggernauts, so we’re going focus our comparison on just these two. Let’s go!
AWS vs Azure: Cloud Platform Comparison
First, let’s take a quick look at how the two companies explain their offerings.
Azure is a comprehensive set of cloud services that developers and IT professionals use to build, deploy, and manage applications through our global network of datacenters. Integrated tools, DevOps, and a marketplace support you in efficiently building anything from simple mobile apps to internet-scale solutions.
Amazon Web Services (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow. Explore how millions of customers are currently leveraging AWS cloud products and solutions to build sophisticated applications with increased flexibility, scalability and reliability.
Let’s break those down a bit…
Both of these explanations are quite similar once you get past all of the fancy words. However, there are some clues into how each company operates. Azure focuses on developers, IT professionals, and its global network of data centers, while AWS makes sure to point out its security and millions of current customers.
AWS is the leader in the cloud market, while Azure is catching up and trying to build a service to compete with them. Let’s take a look to see how well they are doing. The main criteria we’ll be looking at are:
- Compute instances
- Tracking and metrics
- Support and community
Whatever you are doing in the cloud, your biggest expense is probably going to be computing. Compute instances are basically the virtual servers where your applications are going to be running. With Amazon, these are called Amazon Elastic Compute, or EC2. Azure calls them VMs (Virtual Machines).
Both AWS and Azure do extremely well in this category. They both offer over 50 instance types (i.e. configurations of RAM etc.), both support all the operating systems you would need, and both have thousands of image choices in their marketplaces (e.g. Ubuntu or Windows server images).
Azure has a higher max CPU count – 52 to AWS’s 40 – and you can use almost double the memory with Azure. However, you probably don’t need this much of either.
In this category, AWS and Azure both have everything you are going to need. So, I’m calling it a tie in the compute category.
After computing power, the next most important thing is storage. AWS storage is called Simple Storage Service (S3) and Azure’s is called Blob storage.
When looking at the features, they both have the basics down, including things like:
- REST API access
- Batch import
- Server-side data encryption
AWS has really cool extras though. The autodelete/archive feature is handy and it can save you money. You can tell files to be automatically backed up to cheaper storage if they aren’t used frequently. You cannot do that with Azure (not yet anyway). You also have much finer security granularity, granting access on the file level which can be very useful.
Another nice feature with AWS is you can auto-charge your customers that use storage on your services. If they use storage through your app, it can be automatically billed to their Amazon account. This can be really useful if you are a SaaS company.
AWS definitely has the edge when it comes to storage capabilities.
Databases are one of the key services in the cloud. They are fundamental to how most of your apps and websites are going to function, so having a great toolset is vital. Both have some cool relational-database-as-as-service features. AWS’s is called RDS (Relational Database Service) and Azure’s equivalent is called SQL Database.
RDS is more comprehensive, with 6 relational DB engines you can use to Azure’s 2. Also, the NoSQL parts of RDS are more usable if you have another database type you want to use.
On the other hand, Azure’s SQL Database is just so simple and easy to use. Everything is really slick and backups are super easy. They are good with AWS too, but easier with Azure.
If you need more options and fine-grained control, AWS is better for databases. If it’s simplicity you ‘re after, Azure wins this one.
If you haven’t been able to split the two so far, the price is probably going to be the main factor.
Unfortunately, this is also where it gets quite complicated. It’s almost impossible to directly compare AWS and Azure on price. Not only are their services not exactly equivalent (e.g. 1 unit of computing power on AWS might not equal 1 unit on Azure), but the pricing models are different too. RightScale try to do in-depth AWS vs Azure pricing comparison. You can find AWS pricing here and Azure pricing here.
However, here are a few general guidelines you can follow:
- AWS usually won’t be your cheapest option – AWS have the infrastructure, reputation, and customer base so they don’t try to compete too much on this front
- AWS bill compute time by the hour, while Azure does by the minute – this can make a big difference if you are spinning up instances for only a few minutes.
- A huge factor in your overall price will come from how many of your instances are on-demand
That last one is very important. The most expensive way to buy cloud computing is on-demand. If you book in advance, or ‘reserve’ your resources, prices drop dramatically.
With AWS these are called reserved instances. There is even a marketplace for buying and selling compute reservations. If you are flexible, this can save you a LOT of money.
Azure doesn’t have a marketplace like this, but following Microsoft tradition, they focus in enterprise agreements. These are negotiated individually with companies, and sales reps have been known to give big discounts for long-term commitments.
Winner: it really depends…
Security is an important issue in cloud computing. While global trust in the public cloud is growing, it still remains a big concern if you’re planning on moving sensitive data to a cloud provider. Luckily for you, AWS and Azure both have exceptional security on their clouds. Amazon and Microsoft realize that trust is key to getting new customers on board, and both have the cash to hire the best IT security talent in the world.
Both give you
- The ability to integrate with your on-premise active directory
- Control over who can add/remove users
- Control over who can create/destroy edit resources
- Government clouds for when special requirements need to be met
- Government-friendly cloud regions
The only real difference is that AWS has been around for longer and has a more mature ecosystem.
Winner: its a tie, both are great
If your website or online services go down, you lose money – and that’s bad. Another big drawcard of cloud computing is high uptime. Both AWS and Azure have the same guaranteed availability as part of their Service Level Agreement:
- 99.95% uptime for compute instances
- 99.9% uptime for storage
Both companies track records have good and bad patches. Amazon had a big outage this year that brought down big sections of the internet. However, as Tech news site The Information points out, even when this is taken into account, Amazon still has a much better track record than Azure.
- 2014 Downtime (hours) AWS 2.41 – Azure 39.77
- 2015 Downtime (hours) AWS 2.51 – Azure 10.82
Azure argues that it has more regions than AWS, so it has a higher probability of overall downtime minutes. Overall though, AWS is still ahead on this one.
Tracking and Metrics
With cloud computing, you never get direct access to the machine or any hardware. When things go wrong, you have to rely on the tracking tools and metrics given to you by the provider. Unfortunately, neither of AWS or Azure score very well in this category.
AWS has CloudTrail and CloudWatch for troubleshooting and monitoring your applications. Azure has Operational Insights and Application Insights. With AWS the logging tools are centralized, while with Azure they are more spread out across the portal.
With either, you are going to want to augment your monitoring with a tool such as Papertrail, AzureWatch, or NewRelic.
Winner: AWS, but only just
User interfaces preferences are very personal.
Both AWS and Azure have very similar interfaces, and both work well. AWS’s is a little more mature and has a very useful command-line interface. Azure’s seems a little slicker for me and a little more integrated (you can tell that different AWS teams made different parts of the interface).
Here’s a quick look at the AWS interface…
And here’s Azure…
Winner: Both are great, it’s up to you…
Support and Community
The last set of criteria we’ll be looking at for Azure vs Amazon Web Services is support. When you’re stuck with an error you’ve never heard of, or a confusing bill that’s higher than you expected, how easy is it to find help?
AWS has been around since 2006 and has by far the biggest market share. That means there are thousands of developers around the world who have faced, solved, and recorded every problem you’ll probably come across.
Azure isn’t too far behind though. A quick look at the number of tagged questions for each platform on Stack Overflow will show you that Azure actually has more – 47,269 for Azure to 46,782 for AWS. Maybe that’s because Azure users have more problems, but it shows that both have vibrant communities of developers talking about the platforms.
In terms of summits and conferences, though, AWS wins. There are a ton of awesome AWS events around the US and the world. Microsoft Azure, not so much. Overall, AWS has the edge here.
|Storage||Auto archiving and||Still needs work|
|Databases||Good||Excellent and simple to use|
|Price|| Probably more expensive
Bills by the hour
|Good if you can get an enterprise agreement
Bills by the minute
|User Interface||More mature||Slick and more integrated|
|Metrics||Not great, but can add some good tools||Not great, some useful tools too|
|Uptime||Historically the best||Not the best, but on the rise|
|Overall||Winner||Loser (but only just)|
As you can see, the differences between AWS and Azure aren’t huge. But overall, AWS wins in more categories than Azure. So, I’m going to declare it the winner (for now). But, Azure is catching up, and there are definitely some reasons for many people to use Azure over AWS. Here’s a quick breakdown.
Reasons to choose AWS:
- You want a broader offering with a longer and better track record
- You want to follow the path of Slack, Netflix, Spotify, Airbnb, and Pinterest
- You need more fine-grained control over lots of VMs
- You want better control over the lifecycle of your files
Reasons to choose Azure:
- You’re a big fan of Microsoft products
- You use Visual Studio Online
- Most of your team have MSDN subscriptions
- You want to set up a hybrid network with your cloud IT and your on-premise IT
- You can negotiate a great enterprise agreement