Have several customers come to me in the last couple of months asking me “How can Azure be more affordable then an on-premise solution?” “I mean a virtual machine in Azure costs more then I can run in our datacenter”. So I have always said back to the customer “have you thought about the SAN? The Power Usage ? Internet Connection? Hardware failure? Licensing ? Rental of datacenter etc and so on ?
I also see alot of forums posts regarding the same thing, so therefore I thought I would write a post how to do a price comparison with an on-premise solution and running IaaS on Azure.
Now in my research I had to set some prerequistes.
- A new company that needs to setup a datacenter start with renting some rack space at a colocation center.
- The pricing has been based upon some norwegian company prices.
- This new company needs to setup a new IaaS based solution based upon Hyper-V and failover clustering
- This new company is basing their hardware on Dell hardware (both virtualization hosts and networking and storage) With the regular support of 3 years. So in the extreme cases they would need to replace their hardware every 3 years.
- The company will also need a good internet access to this private cloud for the end-users running applications against it.
- The operating system mostly used will be Windows Server 2012 (Therefore im going to base it on Windows 2012 Datacenter Server)
- One person will have to be in-charge of the hardware part-time or this can be out-sourced to the colocation company.
- The datacenter needs to have good physical security measures inplace.
So let us start with Azure. The pricing here is based upon the calculator and since this is a company that knows how many vm we need we will setup a pre-paid 12 month plan.
Lets start with something small. Our company has to host some applications on a web servere running on 20 different servers these will be running on a medium VM in Azure (a medium VM consists of 2 shared cores and 3,5 GB of RAM. (Total of 40 shared cores and 70 GB of RAM)
You can read more about the different options here –> http://msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx (This makes up to $2,678.40 a month) And inside that number there are a couple of factors that are included.
This makes up to $32140 a year for 20 Virtual machines running non stop in Azure.
UPDATE: 01/04/2014 Since Microsoft has reduced the cost on VM since last time this article was updated the price has now been lowered for from 32140$ to 20184$ a year for 20 VMs running non-stop.
- All the hardware is managed by Microsoft (This means UPS, Power, networking, storage, )
- Phyiscal Security is controlled by Microsoft
- Internet Access is included
- The Windows Server 2012 license and CALs are included as part of the pay-per-hour fee.
- Highly-available (The data is being replicated three times inside the same datacenter and Azure hold controll of VM’s being available)
So how much would this cost on-premise for a company ?
- Renting rack space for instance in my case I found a colocation company that has the ability to offer colocation https://www.mywebhost.no/produkter/colocation/
So lets say I wanted to reck an entire rack (that would cost me around 1137$ a month this gives me UPS, physical security, own internet access to the rack but not including power. (so for the rack renting space would be $1137.
Hardware (I would atleast need 2 physical servers setup with a failover cluster and . The cluster would be setup with an iSCSI based SAN solution. Now for some Dell Servers R720 (With both 40 GB of ram and 2x Intel Xeon with 8 cores each costs about $6000 each (which then includes 3 year support) so for two servers that’s 12000$ for one year. As for the SAN I cannot get any prices from Dell since I need to be a dell partner to get that I can only estimate around $4000 there as well, since iSCSI runs over regular ethernet I need a managed switch where I can configure VLANs so I found a managed gigabit switch from Dell which costs around 1500$ so in total for the hardware (not including cables etc) is around $8000 + $4000 + $1500 = $17500 for one year. (NOTE: that this cost can be divided by 3 since the support lasts for 3 years and there will be no more invenstments in hardware in that timeframe)
And for the power I have found that the regular kw/hour is around 0,05$ here in Norway (In June) so for the Dell R710 under heavy load uses about 258 Watts/hour and the switch uses 30 watt under load. 546W and if this infrastrucure runs 24/7 this equals to 13KWh a day (so for one year) which is a total of 365 days in a year) with 13 KWh we get around $237 for the Power Usage. (When it is under full load of course) source: http://essa.us.dell.com/DellStarOnline/DCCP.aspx
- Software costs for licensing. (In this case since we have 20 virtual machines running in a cluster we could either use 10 standard licenses or two datacenter licenses. Now I have to use standard licenses from OPEN lisenses
Now a datacenter 2 Proc license costs $4,810.00 w/o SA. So in case we would need 2 licenses (one for each host) so that totals of $9620 (Now when a new release comes out I would need to buy the new license or I can buy a license with SA then I would get the new release)
UPDATE: 01/04/14 Since Microsoft has raised the price for Windows Server 2012 R2 the Datacenter lisense goes up from $4810 to $6156 w/o SA User CALs are the same so they do not require an update. Totalt in licses for three years $15712
And this software that the buisness i running requires users to authenticate to AD (Which requires CALs) Im going with user CAls (they cost around $34 each) so for 100 users they come to $3400 as well.
So licenses in total = $13020
Now one part missing and that is that we need someone to manage this infrastructure (Both hardware, hypervisor level and the failover cluster) Since this is just a small installation im guessing we need a regular employee doing this 10% of his full time job. Im taking a regular year salary from the norwegian market.
So for an IT consultant they get an average of $71178 a year so for 10% that equals to $7117 a year.
So in total over a total over 3 years (With an on-premise solution)
- Renting rack space, network connection externally, physical location, fire guard etc)
$1137 a month (13644 for one year) 40932 for three years.
- Power Usage
$237 a year ($711 for three years)
$17500 for three years
$13020 for three years
- Man hours
$7117 a year (21351 for three years)
Total: $96206 for three years for an on-premise solution.
For Azure Total for three years: $60552
This makes out a difference of 35654$
Another factor to think about here is that if you are academic or educational you get the license cost reduced for about 90% but still Azure would be a cheaper option.
Now some factors I did not consider.
- Azure replicates data three times inside the same datacenter to ensure High-availability, this is not included in the on-premise solution I used (Which would make the on-premise solution alot more expensive, either by having a cold-rack server with replicated VMs)
- Azure includes VPN solutions which I can setup either Site-to-site or Point-to-site this would require me to buy a hardware based VPN solution or use a windows server as an VPN server and require a public IP-address and require firewall configuration on the on-premise solution
- The pricing used for the SAN is not really accurate (Would really much like to get some input here! )
- Licensing OS (The calculations I based it upon are on OPEN and there are some discounts and rebate offerings im not aware of. For instance SPLA and EDU have a bigger discount programs and get therefore lower licensing costs. (EDU can subtract around 70% of the license cost)
- Azure gives a better IOPS pr / virtual machine then the on-premise solution based on the SAN we choose. (Therefore better end-user experience)
- Azure can also offer a load balancing capabilities
- On-premise solution requires additional man-power to start up (setting up and deploying servers, installing hypervisor and patching etc) start-up cost
- The ability to scale up on demand is easy just to click of a button on Azure. In case you no don’t need 20 virtual machines running you can just stop the machines and you will no longer be charged for them.
- In your on-premise datacenter you might still have enough capaticy to have more multiple machines then 20 (and you have already covered the cost of them) but in Azure you will need to pay for each extra machine.
- Both options would need someone to manage AD, IIS and backend solutions.
So even thou there is about 20.000$ difference in the case I just described, Azure will ultimately give you a easier and cheaper deployment. Azure also has advanced capabilities, like replication, HA, LB and VPN which always cost extra to implement on-prem.
But I would really like your feedback on this article, anything I’ve missed ?
UPDATE: I also did a comparison between Azure and Amazon EC2 instances as well to see if there was a major difference between the two. I did a comparison between Windows Virtual Machines.
Amazon EC2 instance m3.medium 1 virtual core 3 GHZ, 3,7 GB RAM SSD 1x 4 Where we are running 20 instances fulltime.
Azure Medium Virtual Machines which as 2 x 1,6 GHZ, 3,5 GB of RAM Where we are running 20 instances fulltime
The calculation looks like this. For Windows virtual machines.
Azure: 20256$ (Both includes 100GB bandwidth)
Amazon: 25836$ (Both includes 100GB bandwidth)
The calculation for Linux virtual machines.
NOTE: that in Azure I choose a 12 month pre-paid plan and therefore got a good rebate. This was not an option that I found in the Amazon Price calculator.