Dusted Codes

Programming adventures

Running free tier and paid tier web apps on the same Microsoft Azure subscription

Last week I noticed a charge of ~ £20 by MSFT AZURE on my bank statement and initially struggled to work out why I was charged this much.

I knew I'd have to pay something for this website, which is hosted on the shared tier in Microsoft Azure, but according to Microsoft Azure's pricing calculator it should have only come to £5.91 per month:

Windows Azure Shared Pricing Tier

After a little investigation I quickly found the issue, it was due to a few on and off test web apps which were running on the shared tier as well.

This was clearly a mistake, because I was confident that I created all my test apps on the free tier, but as it turned out, after I upgraded my production website to the shared tier all my other newly created apps were running on the shared tier as well.

I simply didn't pay close attention during the creation process:

Windows Azure Create new Web App

Evidentally every new web app gets automatically assigned to my existing app service plan, which I upgraded to the shared tier.

Luckily I learned my lesson after the first bill. However my initial attempt to switch my test apps back to the free tier was not as simple as I thought it would be. I cannot scale one app individually without affecting all other apps on the same plan:

Windows Azure change pricing tier

The solution is to create a new app service plan and assign it to the free tier.

You can do this either when creating a new web app, by picking "Create new App Service plan" from the drop down:

Windows Azure Create new App Service plan

Or when navigating to the new Portal, where you have the possibility to manage your app service plans:

Windows Azure switch to Azure Preview Portal Windows Azure New Portal App Service Plans Menu

This wasn't difficult at all, but certainly a mistake which can easily happen to anyone who is new to Microsoft Azure.

Another very useful thing to know is that if you choose the same data centre location for all your app service plans, then you can easily move a web app from one plan to another. This could be very handy when having different test and/or production stages (Dev/Staging/Production).