Using the Microsoft Azure IaaS Cost Estimator Tool

Update: July 22nd, 2014 – 2:47 PM – Microsoft has updated the Azure cost-estimating tool with a new version that fixes the errors that Aidan points out in this post. According to a comment by Soumit Banerjee from Microsoft, “The errors mentioned [in Aidan’s article] are primarily due to localization issues, given the v1.0 of the application [it was] intended for use in the US only. However, we have since fixed the localization issues, and are eager to hear about your observations from testing the tool.” 
“How much will it cost to run my virtual machines in Azure?” I have heard that question so many times and I’ve always had to respond with “I have no idea.” That was the truth, as modern public clouds have a utility-based billing system that makes smartphone plans look simple. Have a look at the Microsoft Azure pricing calculator and you’ll end up needing a bandage to cover the damage you’ve done to your head from scratching. To help simplify things, Microsoft has released a new tool called the Microsoft Azure (IaaS) Cost Estimator Tool. This should be a great tool. I’ll walk you through using this tool in this article and then have a look at a problem I noticed.

What Does the Microsoft Azure Cost Estimator Tool Do?

The Microsoft Azure (IaaS) Cost Estimator Tool is installed on a machine that will be left running for an extended period, such as a dedicated virtual machine, a PC exempt from power settings, or a server. You will run a job to profile the virtual machines running on a host or managed by something such as System Center Virtual Machine Manager (SCVMM) for a period of between 2 hours or 4 weeks. Note that you can also measure the usage of physical Windows or Linux computers. The gathered data is used to measure the resource utilization of your machines based on metrics that are billable in Microsoft Azure. You can then run a report, view the machines’ resource utilization, and then get an estimation (for each metric, virtual machine and total) of your costs to move the selected machines to Microsoft Azure.

How to get the Microsoft Azure (IaaS) Cost Estimator Tool

The tool is a free download from Microsoft. It can be installed on any of the following operating systems:

  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2 SP1
  • Windows Server 2008 SP2
  • Windows 8.1
  • Windows 8
  • Windows 7 SP1
  • Windows Vista SP2

The pre-requisites for the machine you install the tool on are .NET 4.0 and Windows Management Framework 3.0.
You can profile your potential Azure virtual machines by pointing the tool at any of the following:

  • SCVMM (Windows Server 2012 R2 Standard, Windows Server 2012 Standard, Windows Server 2008 R2 Standard, Windows Server 2008 Standard)
  • Hyper-V (Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008)
  • vCenter (5.1, 5.5)
  • ESX (3.5, 4.0, 4.1, 5.0, 5.1, 5.5)
  • Windows Physical Machines (All Clients listed above, Windows Server 2003, Windows XP)
  • Linux Physical Machines (SSH and Keyboard authentication supported)

Using the Microsoft Azure Cost Estimator Tool

The tool is very easy to use. The home page allows you to start a new profile of a host, virtualization management system, or a physical computer. You can also open up existing reports or logs.

The Azure Cost Estimator Tool home page

The Azure Cost Estimator Tool home page (Image: Aidan Finn)

Clicking one of the green buttons will start a profile. Enter connection and authentication details before configuring the profiling job. The job can last from 2 hours to 4 weeks with scanning frequencies varying from 1 hour to once a week depending on the length of the job. Obviously, you will have to leave the tool running for the length of the job.

You can review the report data after the profiling job is complete. As you might notice in my screenshot, there is something odd. Over 4 hours, the first machine (a virtual domain controller – I have obscured production machine details) allegedly transmitted 179,554.22 gigabytes of data across a 1 GbE network connection in a 4 hour window – I’m pretty sure that the laws of physics would have to be bent to make that possible. I suspect that the converged 1 GbE NICs on the host in question confused the tool.

Data gathered by the Microsoft Azure IaaS Cost Estimator

Data gathered by the Microsoft Azure IaaS Cost Estimator (Image: Aidan Finn)

Clicking on Get Cost after selecting your required machines reveals what we want to see: an estimate of how much it would cost to run these machines in Microsoft Azure. In this report you will get estimated monthly per-machine and total costs. Thanks to the crazy (and incorrect) network data, my estimated cost for a virtual domain controller is over $21K per month! Obviously that is very wrong. I have been told of another instance where RAM and disk capacity were also incorrect, by factors of hundreds or thousands.

A final report generated by the Microsoft Azure Cost Estimator

A final report generated by the Microsoft Azure Cost Estimator (Image: Aidan Finn)

My Take on the Azure Cost Estimator Tool

I am pretty sure that the tool is not measuring network utilization correctly. If Microsoft can fix the issues with data gathering then I think this tool will be a must-have utility for engineers and consultants that are trying to figure out how much it will cost to move workloads into Microsoft Azure.
Editor’s Note: Microsoft has updated the tool; see the article update at the top of this post.