Azure App Service plans: pricing, scale up, scale out, and autoscale
Back to the AZ-104 path
AZ-104Chapter 23

Microsoft AZ-104 Certification Study

Azure App Service plans: pricing, scale up, scale out, and autoscale

Choose an App Service plan from workload evidence, understand its shared capacity and billing boundary, and scale web applications safely with manual, rule-based, scheduled, or HTTP-driven options.

Suggested study time: 70 minutes • Intermediate • Original rewrite based on the supplied Microsoft Learn module and checked against current Azure App Service documentation

Neon Azure administrator shield surrounded by virtual machines, networks, storage, identity, governance, monitoring, backup, and infrastructure as code symbols

1. Match a predictable hotel website to an elastic plan

A hotel chain uses a website for reservations and booking details. Holiday traffic is high and predictable; quieter seasons need less capacity. Scaling must preserve responsiveness at the peak and remove idle resources when demand falls. The administrator therefore needs to choose an appropriate Azure plan pricing tier and know how to scale that plan.

The required background is basic scaling and performance knowledge plus familiarity with the . The chapter focuses on the AZ-104 decisions: what a plan controls, how tiers change capability and price, when applications should share or separate plans, and how manual, rule-based, scheduled, and HTTP-driven scaling differ.

Study flow from application requirements through App Service plan, pricing tier, scaling, and monitoring.
The plan is the compute, capability, scaling, and billing boundary behind an app.

2. Treat the plan as a server farm boundary

An plan defines the compute resources on which one or more applications run. It resembles a managed server farm: creating the plan in a region allocates a pool there, and every app assigned to the plan uses that pool. Azure manages the hosts while you choose the capacity and tier.

Settings defined by an plan.
SettingWhat it controlsDesign consequence
Operating systemWindows or Linux workers.Available runtimes, container options, and pricing SKUs depend on the choice made at creation.
RegionWhere the plan compute is created.Apps placed in the plan run there; use another plan for a different geography.
Pricing tier / SKUHardware family, feature set, limits, and price.Domains, TLS, slots, backups, autoscale, isolation, and zone support vary by tier.
VM instance countHow many workers serve the plan.Manual or automatic scale-out changes this number.
VM instance sizeCPU, memory, and remote storage capacity per worker.Scale up or down changes the SKU/tier and capacity per instance.

In dedicated tiers, an app normally runs on every worker configured for the plan. Apps, deployment slots, WebJobs, diagnostics, and backup activity share the workers’ CPU and memory. Adding an app is therefore not free capacity merely because the plan already exists.

Three web applications share every worker in one App Service plan, while an isolated application uses another plan.
Apps in one plan share capacity and normally scale together under plan-level autoscale.

3. Share for efficiency; isolate for control

  • Share a plan when applications use the same operating system, region, lifecycle expectations, and can safely compete for the same workers. Consolidation can improve utilization and reduce cost.
  • Measure remaining CPU, memory, storage, network, and concurrency before adding an application. Overloading the plan can make both the new and existing applications unavailable.
  • Create a separate plan when an application is resource-intensive, must scale independently, requires a different region, needs a different operating system, or needs stronger performance and operational isolation.
  • Treat every active deployment slot as another active application competing for plan resources.

Dedicated compute is dedicated to the plan, not to each application inside it. If one noisy app starves another, scaling the shared plan might mask the design problem while increasing cost for every app. Moving the app to its own plan restores a separate capacity, scaling, and billing boundary.

4. Select the pricing category before the exact SKU

Current tier categories and their intended role.
CategoryTiersCompute and use
Shared computeFree and SharedCPU quotas on workers shared with other customers; no scale-out; development and testing only; no financially backed SLA.
Dedicated computeBasic, Standard, Premium, Premium V2, V3, and V4Workers are dedicated to your plan but shared by its apps. Higher tiers add capacity, scale limits, slots, backups, and other features.
IsolatedIsolated V2 in Environment v3Dedicated workers in a dedicated virtual network environment, adding network isolation and the largest scale envelope.
Limits that matter for the supplied scenarios; always recheck before deployment.
CapabilityFree / SharedBasicStandardPremiumIsolated
Maximum normal instances1 shared31020 for v1; 30 for v2-v4100 per plan; up to 200 total across an Environment v3
Deployment slots per app0052020
autoscaleNoNoYesYesYes
Custom scheduled backupsNoUp to 12/dayUp to 12/dayUp to 50/dayUp to 50/day

The export lists Premium V3 as the current Premium tier, recommends it for new deployments, and describes SSD-backed standard and memory-optimized SKUs. Current also includes Premium V4. Choose between current SKUs from actual CPU, memory, storage, feature, region, availability, and cost evidence rather than assuming the newest name is automatically the best fit.

Basic targets lower-traffic applications that do not need advanced autoscale or deployment slots, but it provides dedicated workers and built-in load balancing; Linux Basic also supports . Standard is the usual production baseline when rule-based autoscale and staging slots matter. Premium adds higher performance, density, and scale. Isolated V2 is for mission-critical network-isolated workloads in an Environment.

Tier ladder from shared development compute through dedicated production tiers to isolated networking.
Scale up the tier to acquire capacity and features, not merely a different price label.

5. Understand the full pricing boundary

The plan’s SKU and worker count are the main compute charges. In Shared, each app is billed for its CPU quota. In Basic and higher, every plan instance is billed regardless of how many apps use it. In Isolated V2, workers are billed and the environment can add its own minimum or stamp-related cost. Related services such as , Azure , Azure Traffic Manager, monitoring, domains, certificates, or data transfer can add independent charges.

  • Consolidating compatible apps can save money because multiple apps use the same paid workers.
  • More apps do not increase plan cost immediately, but resource contention can force a larger SKU or more workers.
  • Use the pricing calculator, Cost Management budgets, alerts, forecasts, and usage metrics instead of memorizing a price.
  • Minimize idle scale-out instances. For predictable long-running Premium capacity, evaluate savings plans or reservations against the actual commitment and utilization.
  • Free, Shared, and development discounts are useful for nonproduction, but they do not supply a financially backed SLA.

In the portal, search for plans, create a plan, and use Explore pricing plans to compare hardware and features. Check CPU, memory, storage, maximum instances, slots, backups, zone redundancy, operating system, region availability, and container support together.

6. Separate scale up from scale out

The two scaling axes.
OperationWhat changesUse it when
Scale up / downPricing tier or worker size, changing CPU, memory, storage, and available features.One worker needs more power, or the application needs features such as custom domains, TLS, slots, or autoscale.
Scale out / inNumber of worker instances that run the applications.Traffic or concurrency needs more parallel capacity and the application can run correctly on multiple workers.

A common learning path starts on Free, moves to Shared for a custom DNS name, Basic for a TLS binding, Standard for staging slots, and then a larger size or Premium tier for more compute. The sequence can run backward when features are no longer needed. Current feature availability can change, so confirm the plan matrix rather than treating that sequence as a permanent entitlement table.

A scale setting typically applies within seconds and does not require changing code or redeploying the application, but the change affects every app in the plan. Stateless applications are safer to scale out; session state and uploaded data should live in shared services rather than a worker. Dependencies such as and Azure scale separately because the plan does not manage them.

Vertical App Service tier scaling contrasted with adding horizontal worker instances.
Scale up changes each worker; scale out changes the number of workers.

7. Configure plan-level Azure autoscale

autoscale adjusts the plan instance count from rules and schedules. An autoscale setting contains profiles. Each profile defines instance limits and one or more rules; each rule has a trigger and a scale-out or scale-in action. Because this method targets the plan, its applications normally scale together.

Autoscale design elements from the module.
ElementPurposeSafe choice
Minimum instancesCapacity that remains even with no load.Keep the application running and retain enough redundancy for its availability target.
Maximum instancesHard cost and capacity ceiling.Leave useful margin above minimum but respect tier limit, quota, budget, and backend capacity.
Default instancesFallback when metrics are unavailable and initial capacity for a profile.Choose a safe count between minimum and maximum.
Metric triggerResponds to signals such as CPU time, average response time, or requests.Select Average, Minimum, Maximum, or Total intentionally; use sustained windows and cooldown.
Time trigger / scheduleChanges capacity before known daily, weekly, seasonal, or date-specific demand.Specify time zone. Saturday at 08:00 is a time-based rule, not a metric rule.
NotificationEmail or webhook when a scaling event occurs.Notify operators about successful and failed actions and inspect run history.

Always pair scale-out with scale-in. Without scale-out, high load can degrade or fail the application. Without scale-in, low load can leave unnecessary cost. Use different thresholds, adequate evaluation windows, and cooldown to avoid flapping. A maximum of one while the rule tries to grow to three is still a maximum of one: limits, tier, quota, and backend readiness must agree with the rule.

Autoscale profiles evaluate metric and schedule rules between minimum, default, and maximum worker counts.
Rules decide when to act; profile limits decide how far the plan may go.

8. Distinguish autoscale from Automatic scaling

Two different automation models.
Capability autoscale Automatic scaling
SignalMetrics, custom signals, and schedules.Incoming HTTP traffic and platform observations.
ScopeEntire plan.Configured per web app, with plan-level maximum burst.
RulesYou define thresholds, actions, profiles, and schedules.The platform decides without custom rules.
Warm capacityNo special always-ready or prewarmed model.Always-ready minimum plus a prewarmed buffer reduces cold-start delay.
Current tiersStandard and higher.Premium V2, V3, and V4.
Best fitCustom logic, multiple metrics, CPU/memory/queue signals, or predictable schedules.Unpredictable HTTP traffic, less rule management, and different app-level limits inside a plan.

Automatic scaling is also called elastic scaling in the supplied module. It can enforce an app-level maximum so a rapidly growing front end does not overwhelm a slower database. Maximum burst can reach 30 on supported Premium plans; the per-app maximum must fit inside it. Automatic scaling does not support deployment-slot traffic, and only one scaling method should be active for a plan.

Automatic scaling supports Windows and Linux apps deployed as code or containers. Disable ARR affinity for a stateless scale-out design, monitor AutomaticScalingInstanceCount, and account for active and prewarmed workers in performance and cost decisions. health checks can be used with this model.

Decision between manual scaling, rule-based Azure autoscale, and HTTP-driven Automatic scaling.
Choose from the signal and control model, not from three similar names.

9. Module assessment explained

Answers to every supplied assessment item.
QuestionCorrect answerReasoning
More CPU, memory, or disk without adding VMs?Scale up.Changing tier or worker size increases capacity per instance; scale out adds instances.
Which listed plan supports 10 staging slots?Premium V3 P1V3.Basic has no slots and Standard supports five; Premium supports up to 20.
Trigger an event at 08:00 on Saturday?A time-based rule.The trigger is a schedule in a time zone, not a measured load signal.

10. Compact review of every topic

Short versions for active recall.
TopicRemember this
ScenarioMatch predictable hotel demand with enough peak capacity and lower off-peak cost.
PlanDefines OS, region, SKU, worker size, count, capability, scale, and billing boundary.
SharingApps and slots share workers; consolidate for efficiency only when contention and coupled scaling are acceptable.
IsolationUse another plan for heavy workloads, independent scaling, another OS or region, or a separate failure/performance boundary.
Shared tiersFree and Shared are quota-based development/test compute without scale-out or financially backed SLA.
Dedicated tiersBasic through Premium V4 dedicate workers to the plan; features and limits grow by tier.
Isolated V2Runs in Environment v3 for dedicated networking and high scale.
PricingPay mainly for SKU and instance count; dependencies and certain add-ons bill separately.
Scale upChange tier or size for more CPU, memory, storage, or features.
Scale outChange worker count; design the app as stateless and scale dependencies separately.
AutoscalePlan-wide rules and schedules need min/default/max, paired directions, correct statistics, cooldown, and notifications.
Automatic scalingPremium V2-V4 uses HTTP traffic, per-app limits, always-ready and prewarmed instances without custom rules.

11. Practice and current resources

  • Given three apps with different traffic and regions, decide which can share a plan and defend every separation.
  • Choose a tier for development, a production app needing ten slots, and a network-isolated mission-critical app.
  • Design rules for an unexpected CPU surge and a Saturday 08:00 booking campaign, including minimum, maximum, default, notification, and cooldown.
  • Explain why scaling only the web tier can overload or another downstream system.
  • Ask Microsoft Copilot to compare pricing plans and scaling directions, then verify the response against current documentation.