Wednesday, November 11, 2015

How Microsoft Azure turns out to be really expensive because of hidden pricing

Few days back, a friend was complaining about rising bills from Microsoft Azure VM. They were simply trying to do load testing on one of their Azure VMs and bandwidth usage was causing inflated bills. I was flummoxed, and doubtful on Microsoft's ways of doing business, I decided to investigate the matter.
We use Digital Ocean as our VM provider, and we are extremely happy with their service. Most important of all, apart from being really cheap, they are very transparent with their pricing. So I compared a similar VM offered by both, Digital Ocean and MS Azure.

Azure

Digital Ocean

Processor speed 2.1 GHz 2 GHz
No. of cores 2 2
RAM 3.5 GB 4 GB
Harddisk 60 GB 60 GB SSD disk
Price $80 (Rs 5185.8) $40 (Rs 2650)

Digital Ocean pricing details here: https://www.digitalocean.com/pricing/
MS Azure pricing details here: https://azure.microsoft.com/en-in/pricing/calculator/?scenario=full

If you notice, Digital Ocean provides a slightly better VM at exactly half the cost to MS. In fact, if you compare Digital Ocean with GoDaddy and AWS, the same conclusion can be obtained. Not a big deal, until you factor in the bandwidth costs of renting an Azure VM.
First of all, Azure calculators and pricing pages don't make it clear how much they charge for the bandwidth. On the other hand, Digital Ocean bandwidth prices are clear on their pricing page. I had to dig in a bit to find out the Bandwidth pricing of MS Azure and found it here:
https://azure.microsoft.com/en-in/pricing/details/data-transfers/
What I found was totally shocking. Analyze this:
MS Azure gives you 5 GB per month of bandwidth free, which is insanely low. What this means is that when you do anything non-trivial on MS Azure servers, you will easily cross the free limits and start paying for bandwidth. But more crazy is to find out how much they charge for bandwidth. They charge Rs 8.3 per GB over the 5 GB free limit (for South-East Asia). So if you end up using 4 TB in a month, you will have to shell out a huge amount of Rs 34,000 for that month.
Compare that to Digital Ocean, you get 4 TB of bandwidth free by default. Extra bandwidth is 2 cents per GB (Rs 1.3/GB). So Digital Ocean wins hands down in terms of cost effectiveness and transparency.
An important point is that if you are on MS Azure, and you happen to either get an app which becomes insanely popular or god forbid, you get hit by a Distributed Denial of Service (DDoS) attack, you will suddenly see a huge bill. The previous scenarios are a bit rare, a more common one is that as your app slowly grows in popularity, you may start to consume more and more bandwidth thus increasing your costs of the VM.
Hence I suggest that you look at Digital Ocean very seriously for your VM needs. Digital Ocean is a startup and has attractive pricing to lure customers. An important question then comes up: will Digital Ocean's price remain so aggressive at a later period as well? Even though nobody can deny that prices can go up in future, I still believe that Digital Ocean will always price their VMs lower to Azure, AWS etc. Their service is also very good.
One important caveat is that Digital Ocean provides only dedicated VMs, they don't provide other services like hosting of websites, databases, storage etc. Really speaking, for certain things like website-hosting, if you were to take a VM from Digital Ocean and host your website on it, it will be cheaper and better. Only problem is that you are on your own in terms of configuring your VM and setting up your website. Essentially, Digital Ocean keeps their pricing simple and aggressive by keeping their product really simple.
Another aspect is that once people get used to a particular VM provider, they rarely switch to a better one. This is true because people perceive switching as a painful task, though in actuality, in my experience, it was never very hard to switch. So, for this reason, you should be careful what VM provider you choose in the beginning itself. Going for a free VM under Microsoft Azure may appear to be a smart move, but as I stated above, you can easily be taken for a ride by being forced to pay heavily for bandwidth consumption.