Windows Azure or Amazon EC2 for ASP.NET MVC Development?

Ben picture Ben · Nov 26, 2010 · Viewed 18.4k times · Source

If you want to build enterprise ASP.NET MVC applications that use MSSQL databases is it better to use Windows Azure or Amazon EC2?

I didn't find any satisfying answers.

So what are the advantages and disadvantages of the two cloud plattforms (Price, Performance, Simplicity of integration, ...)?

Answer

Roopesh Shenoy picture Roopesh Shenoy · Nov 26, 2010

Both are for slightly different purposes -

Amazon is infrastructure as a service, which means you dont have to purchase hardwrae, the networking equipment and maintain them. You will get virtual machines that can host linux or windows OS and can easily install any framework, web server or applications you want on it to use for hosting web apps or web services or long running processes. You are still responsible for maintaining the operating system which means that you still need to apply upgrade patches, protect against viruses, and are completely responsible to ensure that the OS does not crash.

Windows azure is a platform-as-a-service - you basically get windows VMs like in Amazon, but the operating system management and the application framework is also completely abstracted away from you. It allows for automatic OS upgrades and maintenance. Also this means you just load your app and it starts working - no need to worry about the low level details.

While this reduces the control you have over what you can install and what you can't it gives you much lesser operational overhead since you don't need a lot of administrative effort in maintaining your instances. Also scaling up and down, load balancing, auto high uptime, all these are handled by the azure service controller (or the fabric controller).

Sql azure is one step ahead in this direction - you dont even have to consider a VM, you just get a particular size db in the cloud, and you pay for what you use. The data is seemingly triple replicated and hence there is very good reliability built in. It is much cheaper to have this at least for smaller databases than to have a full blown instance for an sql server.

MS is also introducing some features like windows server vms which will give you an option for having amazon like instances, but I personally like the current azure better.

So to summarize - for new asp.net mvc applications, with sql server backend, windows azure is a great platform to build on. On the other hand, if you have an existing website which has a lot of dependency on legacy components that are not supported by windows azure, amazon will be a far better choice. Also Amazon will be slightly cheaper for an instance of same size (though the pricing structures can vary depending on the commitment you want to give).