Windows Azure: Web Sites vs. Virtual Machines

1/9/2014 5:31:57 PM
I have been using Amazon EC2 for a few years now to host my websites. Amazon offers all of the services I need and the tools to use these services. My general setup for my sites, all .NET MVC sites, use at least 1 Windows 2012 EC2 virtual machine. Some have an instance of SQL Express 2012 installed on the same machine as the websites. Some have SQL Web 2012 installed on the front-end machines and some a dedicated instance of SQL Web 2012. I have not used Amazon RDS for SQL Server. Recently, I have found the Amazon services slow. They do everything I need but I wish they did it faster. So I decided to look into alternates including Windows Azure. I assumed it would be a straight forward switch. An Amazon EC2 instance would become a Azure VM. And this can be done. But then I looked into Azure Web Sites. Azure Web Sites (Standard/Reserved) offer similar computational power to the Azure VMs. Azure Web Sites also offer automatic scaling. This could simplify my life greatly. What I now had to figure out was, which is better for me and how much do they cost. This was not so easy. Microsoft is surprisingly vague on some details. An Azure Standard Web Site has 1.75 GB of ram and 1 CPU core. That's clear. But what about databases? In the end, this was surprisingly simple. When you use an Amazon Instance, you can Remote Desktop into that instance and setup it up as you feel. You can then image that instance and start up more instances with your preferred feature set all in place. Windows Azure VMs work in a similar way. You great a new VM, Remote Desktop into it, set it up as you wish and then image it (although this part is not as easy in Azure). You pay for the cost of the instance and then the cost of bandwith and extra storage (if you use any). For an Azure Standard website, you pay a base fee for the service and if you want to use a database, you need to setup an Azure SQL Server. There are multiple sizes and flavors. These start at $4.95/month and go up from there. It is important to understand though that you are paying for a SQL Server instance and not a SQL Server database. A database is a single database. A server allows you to create multiple databases.