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

18,502

Solution 1

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).

Solution 2

Roopesh gave a good description of some of the differences. Let me add to it, for your specific case.

Since you want to use Microsoft SQL Server, Azure's SQL Azure is going to be a good fit. Further, if you deploy your application into an Azure Web Role (a role is a virtual machine with a specific template, and a web role specifically runs IIS), you can then work directly with your SQL Azure databases in the same data center without incurring any bandwidth charges or Internet latency between your app and your database.

One clarification: SQL Azure does triple-replicate your data. This replication is instant, so keep this in mind when you DELETE * FROM CUSTOMERS, as this deletion is also triple-replicated. Consider this when planning your backup strategy (maybe take advantage of Azure's sync service to periodically back up to another database, either in Azure or on-premises).

Solution 3

We currently host our own app on a private cloud for our customers and we're currently migrating it to Azure as an R&D project.

Our product utilizes the Free Text Search feature of MSSQL Server. Unfortunately that hasn't made it into Azure.

I'm thinking that moving to Azure now will make it more difficult, compared to AWS, to switch to, or to support any other platform down the track.

Solution 4

I've found SQL Azure to be slow. If you need a high-performance database solution, look elsewhere. SQL Azure only seems to be suited for low-traffic sites that don't do a lot of database accesses. As others have pointed out, it is a very convenient solution because of its ease of use, but...

Solution 5

While Amazon looks good from a cost perspective, their free instances are linux only. For windows costs are comparable. Amazon roles are basically VMs, you have to manage the rest of the box. While VM roles are now available on azure if you want that, I prefer using the Azure Web roles as the rest of the platform/load balancing is all taken care of for you.

If you subscribe to MSDN or become a Microsoft partner (or via Bizspark or similar program) you can get access to azure resources for free:

http://www.microsoft.com/windowsazure/offers/default.aspx

SQL Azure is also a big advantage with Azure - it's fully replicated and managed. If you want MSSQL on Amazon you can install it, but you have to manage it yourself.

Share:
18,502
Ben
Author by

Ben

http://www.linkedin.com/in/benbachhuber@benbachhuber

Updated on June 21, 2022

Comments

  • Ben
    Ben almost 2 years

    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, ...)?