How to change the VM size for your Windows Azure Service

As you may know, Azure VM size is set in 4 different catagories:

  1. Small  - 250GB
  2. Medium - 500GB
  3. Large - 1TB
  4. ExtraLarge - 2TB

It is possible that after your service is running and you might need to tune your service to add more space in Azure VM or reduce the VM size to save some cost if resources are higher then your current service need. This concept is defined as "elastic scale" and Windows Azure takes this concept very well.

Here are a few ways you can accomplish it:

1. Auto-Scale using Azure Service Management API.:

There is a great blog on how to accomplish it: 


2. In Place Upgrade for your Azure Service:

  1. You can dynamically upload a new package with a higher VM size to Staging slot first
  2. Perform VIP swap so your service can use the higher VM size Service
  3. Delete the Deployment in Staging slot otherwise you may pay for both slots.


Comments (4)

  1. Christian Weyer says:

    I think the auto-scale referred above does not help in increasing or decreasing the VM – as the VM size is part of the csdef it means that you need to redeploy. No?

    <WorkerRole name="WorkerRole1" vmsize="ExtraLarge">


  2. Matthew says:

    I think you're right Christian, you can only change the instance count on the fly.  It seems changing the VM size requires modifying the csdef, rebuild/package and redeploy.  :/

  3. Yes to change the VM Size you would need to repackage the application after making modification in the service definition file.

  4. Johan van Tonder says:

    It is quite strange that the VM size cannot be changed "in-place" / dynamically, without a redeploy. It would make sense to be able to change the VM size AND the instance count together in the same place. IMHO this design needs to change.

Skip to main content