Back

TechnologyMar 30, 2012

Deciding on VM Size and Instance Count in Windows Azure

Jason Heilig

When considering migrating an application to the Cloud with Windows Azure, calculating a ball-park cost of hosting the application is an important first step, but possibly not a trivial one. Although Microsoft’s pricing model is readily available and even offers a simple calculator (http://www.windowsazure.com/en-us/pricing/calculator/advanced/) to assist in the process, it may be difficult to know how much of each resource you will need to get an estimate.

Some of the items should be fairly straight forward. Historical data can generally provide an estimate of bandwidth and database usage, but when it comes to calculating compute instances and VM size, many IT Managers will find themselves uncertain what they would need. To assist in this, let’s first take a look at the VM role sizes offered by Microsoft.

The prices per month for each, at the time of writing, are $30, $90, $180, $360, $720 from ExtraSmall to ExtraLarge respectively. So with the exception of the transition from ExtraSmall to Small, going to the next size VM is exactly twice the cost, which, is mirrored in the increase of resources you get at each level. With each step, CPU Cores, Memory, Disk Space, and Bandwidth are all doubled from the previous. If this is the case, then, is there any advantage to any one of these over the others? The answer is yes. In the majority of cases, the best bet will be to go with the small instance, with the reason being that because all of these resources scale equally to cost it is possible to achieve the exact equivalent to a larger VM simply by increasing the number of instances. For example 8 small instances is equivalent to one ExtraLarge instance, with the advantage of the fact that when not needed these small instances can be turned off and will cost nothing.

By hosting the application in this manner, it increases the effectiveness of the number one reason that a business would transition to the cloud anyway – Scalability. Obviously 16 smaller instances can be more finely adjusted to the application’s usage than 2 ExtraLarge can. If traffic gets higher or lower than expected, two Small Instances can be added at $180/mo for the time that they are running, versus adding another ExtraLarge for $720/mo.

The only exception to using the smallest instance, is in the case of the ExtraSmall, which offers only 1/20 of the bandwidth of the Small, making it only feasible for very lightly accessed applications or, more likely, a QA environment.

From this point, it becomes much easier to estimate the compute instance requirements of migrating the application to Windows Azure. Take the current server(s) total resources (CPU, RAM, etc) and find how many Small instances it would take to recreate it. This gives a good starting point, however, remember that these instances can be turned on and off to meet demand, and beyond the first instance, there is no charge when the instances are off. This can lead to significant cost savings, and is the primary incentive to migrating to the cloud.

Modernize applications and support business initiatives with Microsoft Azure

Explore Our Microsoft Consulting Services  →