Microsoft Azure (IaaS) Cost Estimator Tool

Until now, when evaluating datacenter compute resources and estimating costs in the cloud has been a challenge. Typically we’re looking at a physical or virtual machine configuration such as CPU size, memory, disk space and so on. However, there are other resources that are more difficult to estimate such as bandwidth usage, storage transactions, and estimated future capacity.

Imagine having 50, 100, or more servers. Performing estimates for 100’s of servers would not only be time consuming, it would be difficult because we’re only looking at a snapshot in time. We know over the course of a day or week a server’s consumption model of resources will change. We may end up missing critical information that could end up in underestimating the cost of a VM or service in the cloud. Underestimating resources could lead to unexpected charges. Not an ideal situation when we’re looking to either reduce costs or migrate resources to the cloud.

Microsoft Azure (IaaS) Cost Estimator Tool

To simplify the cloud cost estimation process, Microsoft has created the Azure (IaaS) Cost Estimator Tool.

The Azure Cost Estimator Tool will profile VMware/ESX, Virtual Machine Manager, Hyper-V, and Physical servers over a period of time and report resource consumption and align it to resources and VM sizes within Microsoft Azure.

Download the Microsoft Azure (IaaS) Cost Estimator Tool:


Next I'll walk through the tool and show estimated costs to run my compute resources (VMs) in Azure.

First we’ll need to Download and install the Azure (IaaS) Cost Estimator Tool. After installation, launch the tool. You can install the tool on a client or server. For more information on OS compatibility, see the information provided within download link.


After the tool is launched, you’ll see the following:


The tool supports scanning virtual environments including VMware and physical machines. Each profile is retained for historical purposes and logs are available to investigate any errors.

I run Hyper-V managed by System Center Virtual Machine Manager (SCVMM) in my environment. I also have a mix of Windows and Linux VMs running as well.

I’ve selected SCVMM since I run System Center Virtual Machine Manager in my environment.



Regardless what scan option is selected, we need to add details of how to attach to the environment be it a management server, a hypervisor, or a physical server.

After the connection details are filled in we have two options to select from:

  • Profiling Duration: How long do I want to profile resources for?
  • Scanning Frequency: How often do I want to take a snapshot of resources?

For example, under profiling duration, selecting Run Once performs a single pass of the environment, however to gather a more accurate estimate of resource usage and consumption, I recommend running over a period of multiple hours.

For the purposes of this walk-through I’ve selected the “Run Once” option. Once selected, I add the necessary information to connect to System Center Virtual Machine Manager:


Then I selected the profiling duration (Run Once):


I typed in a name for the report and selected “Begin Profiling”:



Once the profile has completed select “View Report”:


After the report populates, select one or more machines and select Get Cost to view VM costs in Azure. Feel free to change some of the editable fields if you believe they are over/understated.


After the costs render, each machine list listed with the total monthly cost to run in Azure. You have the ability to change the type of compute (VM) instance if you feel they are over/understated. For example, you may want to use the lower cost BASIC instance for file/utility servers and STANDARD instances for SQL workloads. As instances are changed, costs will adjust accordingly.


Notice there is a drop-down next to “Choose Pricing Model”. There are three different pricing models to choose from. Let’s define what these are:

  • Cost Optimized (shown above): Calculates costs based on resources profiled during the length of the scan.
  • VM Allocated: Uses 100% of machines capacity (1:1 mapping of available resources or a close as it gets to an Azure VM instance) to calculate costs.
  • Performance Optimized: Calculates costs at a slightly higher level of compute than VM Allocated.

I’ve selected Cost Optimized which prices the Azure VM based on resources used (not available). For example, OM01 has 220 GB of storage available, however it’s only consuming ~80 GB of storage. You can also change the instance size as shown below:


Here’s a look at costs for VM Allocated:


Here’s a look at costs for Performance Optimized:



For comprehensive help information about the tool, select the “?” at the top left of the application.


You can also select what Region to price the VMs in as some regions have slightly different pricing from others (in v1.0 only US Regions are supported).


There’s also a profile export feature where the costs may be exported to Excel for further analysis.


Question: If I close the tool and re-open it, how do I access current and older reports?

Answer: Once the tool is launched select Archived Report and the date range the reports were ran in and select Get Report.


Select the report and select Generate Report.



Moving to the cloud shouldn’t be a guessing game. By using the Microsoft Azure (IaaS) Cost Estimator Tool, compute resources will be analyzed and estimated giving you the information to realize the potential costs of moving compute resources to Microsoft Azure.