In part 1 of this article we initiated a comparison of the services provided by Amazon AWS and Microsoft Azure. We talked about a bit of the history of the two platforms and found certain pros and cons of each of them.
Further in this part 2 of the series, we’d focus on certain tangible and rather objectively measurable comparison points of the two services. As we discussed already, the famous “free tier” was one of the major proponent in popularity of AWS. As part of their innovation promotion package, AWS still runs that free tier. Similarly, Microsoft has also created a free tier for their services. Lets take a look at both the providers’ free tiers.
AWS (quoted from AWS site → http://aws.amazon.com/free/)
- 750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month
- 750 hours of an Elastic Load Balancer plus 15 GB data processing*
- 10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests
- 5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests
- 30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)
- 25 Amazon SimpleDB Machine Hours and 1 GB of Storage
- 100,000 Requests of Amazon Simple Queue Service
- 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service
- 10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests
Azure (quoted from Azure official site → http://www.microsoft.com/windowsazure/free-trial/)
- 750 hours of an Extra Small Compute Instance, which caps out at 1.0 GHz and 768MB of memory and 25 hours of a Small Compute Instance.
- 20GB of cloud storage with 50k Storage transactions.
- Data transfers: 20GB in / 20GB out.
- 90 days of access to the 1G Web Edition SQL Azure relational database.
Letting the jargon aside, lets put these two offerings in perspective –
- 750 hrs a month, easily surpasses the 24×7 needs (24×31 = 744 hrs a month) , which basically says that you can have your application up and running on the cloud for free. Both Azure and AWS allow that.
- One contrasting point here though, AWS provides a Linux instance, and NO windows instance, Azure provides the Windows instance. So, if you application is on Windows, hard luck with AWS, but Azure can help you still.
- The traffic for application is the next most important thing, AWS allows 15GB two way (in and out, put together 30GB), whereas, Azure takes it one step ahead and provides 20GB two way (in and out, put together 40GB). AWS provides a value add in the form of Elastic Load Balancer, which Azure doesn’t really mention.
- The storage, another very important parameter for an application, is hosted on famous EBS (Elastic Block Storage) by AWS and is capped at 10GB. In addition, 5 GB of S3 storage is bundled in the offer. Azure provides 20GB of storage (since they have mentioned explicitly, I assume that it includes all three types, table, blob and queue).
- One feather here for Azure, they have an RDBMS on the cloud, SQL Azure. They bundle 90 days worth of usage of SQL Azure web edition capped at 1GB. Enough for a developer to get his idea machine working 🙂
All in all, a decent launch-pad package by both AWS and Azure. There is one distinction though, the AWS free tier has 1 year from the sign up date, basically it allows a business application to grow for the first year on the system free of cost (within free tier limits) and then starts charging at pay as your go model. Azure free tier, however doesn’t do that, and it limited till September 2011 only. From that perspective, AWS moves ahead quite clearly.
Next ideal point of comparison would be the instance sizes and the prices attached to them. In our study, we found that the instance sizes are generally segmented pretty closely, and there is not really a huge difference. The terms referred by each of the providers might differ, however the configurations are comparable.
The table attached here, provides a quick insight into the various instances offered by each of them, and the pricing. Since Azure only provides Windows instances, we have taken windows pricing for AWS as well. On average, AWS Linux instances are priced 25%-30% lower than the corresponding windows instances.
Besides the standard instances, AWS also provides certain customized instances as well. There are three categories, High Memory, High CPU and Clustered. All the three are identifiable by their names as such. This kind of offering is mostly seen as an indicator of the maturity of the provider. Azure doesn’t provide any such service at the moment.
[table id=3 /]