Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
An Azure App Service plan defines a set of compute resources for a web app to run. An app service always runs in an App Service plan. Azure Functions also use App Service plans in some scenarios.
When you create an App Service plan in a certain region, you create a set of compute resources for that plan in that region. Whatever apps you put into the App Service plan run on those compute resources.
Each App Service plan defines:
- Operating system (Windows, Linux)
- Region (China North 2, China East 2, and so on)
- Number of virtual machine (VM) instances
- Size of VM instances (small, medium, large)
- Pricing tier (Free, Shared, Basic, Standard, Premium, PremiumV2, PremiumV3, IsolatedV2)
Pricing tiers
The pricing tier of an App Service plan determines what App Service features you get and how much you pay for the plan. The pricing tiers available to your App Service plan depend on the operating system, region, and other factors.
| Category | Tiers | Description |
|---|---|---|
| Shared compute | Free, Shared | Free and Shared, the two base tiers, run an app on the same Azure VM as other App Service apps, including apps of other customers. These tiers allocate CPU quotas to each app that you run. |
| Dedicated compute | Basic, Standard, Premium, PremiumV2, PremiumV3 | The Basic, Standard, Premium, PremiumV2 tiers run apps on dedicated Azure VMs. Only apps in the same App Service plan share the same compute resources (and those resources aren't shared with other customers). The higher the tier, the more VM instances that are available to you for scale-out. |
| Isolated | IsolatedV2 | The IsolatedV2 tier runs dedicated Azure VMs on dedicated Azure virtual networks. This tier provides network isolation on top of compute isolation to your apps. It provides a level of isolation from other customers. |
Each tier also provides a specific subset of App Service features. These features include custom domains and TLS/SSL certificates, autoscaling, deployment slots, backups, Azure Traffic Manager integration, and more.
You can find more comparisons of plans in App Service limits.
For pricing information, see App Service pricing.
Considerations for running and scaling an app
In the Free and Shared tiers, an app receives CPU minutes on a shared VM instance and can't scale out.
In other tiers, the default placement and scaling behavior, when per-app scaling is disabled, is as follows:
- If you create an app in App Service, it's part of an App Service plan. When the app runs, it runs on all the VM instances configured in the App Service plan.
- If multiple apps are in the same App Service plan, they all share the same VM instances.
- If you have multiple deployment slots for an app, all deployment slots also run on the same VM instances.
- If you enable diagnostic logs, perform backups, or run WebJobs, they also use CPU cycles and memory on these VM instances.
- All apps in an App Service plan scale together, because they share the same underlying compute resources (VM instances). Scaling the plan — whether manually or through autoscale rules — affects all apps in the plan.
When per-app scaling is enabled, you can limit each app or deployment slot to a subset of the plan's VM instances. Plan capacity and billing remain at the App Service plan level. The number of active replicas for an app or slot can change with plan capacity and can't exceed the number of VM instances in the plan.
For more information on scaling out an app, see Get started with autoscale in Azure.
Cost of App Service plans
This section describes how App Service apps are billed. For detailed, region-specific pricing information, see App Service pricing.
Except for the Free tier, an App Service plan carries a charge on the compute resources that it uses:
- Shared tier: Each app receives a quota of CPU minutes, so each app is charged for the CPU quota.
- Dedicated compute tiers (Basic, Standard, Premium, PremiumV2, PremiumV3): The App Service plan defines the number of VM instances that the apps are scaled to, so each VM instance is charged.
Note
In dedicated compute tiers, the VM resources are dedicated to your App Service plan and are not shared with other customers.
However, any apps you place inside the same App Service plan share those dedicated resources with each other.
This means compute is dedicated at the plan level, not the per-app level.
To isolate compute per app, create a separate App Service plan.
- IsolatedV2 tier: The App Service Environment defines the number of isolated workers that run your apps, and each worker is charged.
You aren't charged for using the App Service features that are available to you. These features include configuring custom domains, TLS/SSL certificates, deployment slots, and backups. The exceptions are:
- App Service domains: You pay when you purchase one in Azure and when you renew it each year.
- App Service certificates: You pay when you purchase one in Azure and when you renew it each year.
- IP-based TLS connections: There's an hourly charge for each IP-based TLS connection, but some Standard or higher tiers give you one IP-based TLS connection for free. Server Name Indication (SNI) TLS connections are free.
If you integrate App Service with another Azure service, you might need to consider charges from that service. For example, if you use Azure Traffic Manager to scale your app geographically, Traffic Manager charges apply.
Tip
Azure services cost money. Azure Cost Management helps you set budgets and configure alerts to keep spending under control. You can analyze, manage, and optimize your Azure costs by using Cost Management. To learn more, see the quickstart on analyzing your costs.
Scaling for capabilities or features
You can scale your App Service plan up or down at any time. It's as simple as changing the pricing tier of the plan. You can choose a lower pricing tier at first, and then scale up later when you need more capabilities.
For example, you can start testing your web app in a Free-tier App Service plan and pay nothing. When you add your custom DNS name to the web app, just scale up your plan to a higher tier.
The same process works in reverse. When you no longer need the capabilities or features of a higher tier, you can scale down to a lower tier and save money.
For more information on scaling up an App Service plan, see Scale up an app in Azure App Service.
If your app is in the same App Service plan with other apps, you might want to improve the app's performance by isolating the compute resources. You can isolate the resources by moving the app to a new App Service plan.
Decision to use a new plan or an existing plan for an app
You pay for the computing resources that your App Service plan allocates as described in the earlier section about cost. You can potentially save money by putting multiple apps into one App Service plan. However, you should ensure the plan has enough resources for your apps.
Apps in the same App Service plan share the same compute resources. To determine whether the new app has the necessary resources, you need to understand the capacity of the plan and the resource requirements of the apps.
Isolate your app in a new App Service plan when:
The app is resource intensive. For general guidance, use this table:
App Service plan Maximum apps B1, S1, P1v2, I1v1 8 B2, S2, P2v2, I2v1 16 B3, S3, P3v2, I3v1 32 P0v3 8 P1v3, I1v2 16 P2v3, I2v2 32 P3v3, I3v2 64
- You want to scale the app independently from the other apps in the existing plan.
- The app needs resources in a different geographical region. This way, you can allocate a new set of resources for your app and gain greater control of your apps.
Note
An active slot is also classified as an active app because it's competing for resources in the same App Service plan.