Many people have reached out to me asking why Microsoft keeps charging them even though they have shut down or deleted their app service (web app or API app). In this blog post, I will explain how app service pricing works and why Microsoft still charges you even after the app is stopped or deleted.
Lets start with the basics. Whenever an app service is created in Azure, it is created in what is known as an App Service Plan which is analogous to a server farm in the traditional web hosting world. In Azure, an App Service Plan represents a blend of compute, storage and networking resources that are provisioned for an app service to be hosted in Azure. Microsoft charges based on configuration of the app service plan. The different pricing tiers that you can choose for your app service plan are listed below :
- Free Tier
- Shared Tier
- Basic Tier
- Standard Tier
- Premium Tier
- Isolated Tier
Free and Shared tiers host the app services on shared virtual machines where some of the other apps could belong to other customers. There is no SLA for these tiers and unlike all the other tiers, these tiers are priced on a per-app basis.
Basic, Standard and Premium tiers offer different set of capabilities with basic tier offering the minimal set of capabilities needed to run an app service and premium is the most feature-rich tier offering features like auto-scaling, custom domains, SSL support etc. Basic tier is recommended for dev/test workloads whereas Standard and Premium tiers are recommended for production workloads. Each of these tiers offer 3 different sizes (Basic – B1/B2/B3, Standard – S1/S2/S3 and Premium – P1v2/P2v2/P3v2). All these tiers are priced based on the size and the number of instances.
Lastly, Isolated tier is linked with private isolated environments called as App Service Environments. Isolated tier is recommended for mission critical workloads which require network isolation.
For more details on different pricing tiers, please visit – https://azure.microsoft.com/en-us/pricing/details/app-service/windows/
Now lets understand the pricing in more detail. When you create a new app service, you can create an app service plan with it or you can use an existing app service plan as shown below:
An app service plan can also be created directly as shown below:
The moment an app service plan is configured, Microsoft starts the billing irrespective of the number of apps running in the app service plan. In the following figure, an app service plan with S1 pricing tier and 1 instance is billed by Microsoft, even though I don’t have an app deployed:
Likewise, even though the app service is stopped, Microsoft keep charging for the underlying app service plan.
You can optimize your app service plan cost by running multiple apps within a single app service plan. Please note that all the apps running under the same app service plan share the underlying resources among themselves. If one of the apps consume all the resources of the app service plan, it might result in failures in other apps. Hence, if you have resource-intensive apps, its better to run them in their own app service plan.
To summarize, just shutting down or deleting the app service doesn’t stops Microsoft from charging. The underlying app service plan is the pricing unit and it shall be de-provisioned to avoid any unexpected charges.