Bird
Raised Fist0
Azurecloud~5 mins

Auto scaling App Service in Azure - Commands & Configuration

Choose your learning style10 modes available
Introduction
When your web app gets more visitors, it can slow down or crash. Auto scaling helps your app add or remove resources automatically to handle changes in traffic without you doing anything.
When your website traffic changes a lot during the day and you want it to stay fast.
When you want to save money by not running more servers than needed.
When you expect sudden spikes in users, like during a sale or event.
When you want your app to stay available even if one server fails.
When you want to avoid manually changing server numbers as demand changes.
Config File - autoscale-settings.json
autoscale-settings.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/autoscale.json#",
  "name": "autoscaleAppService",
  "location": "eastus",
  "properties": {
    "profiles": [
      {
        "name": "AutoScaleProfile",
        "capacity": {
          "minimum": "1",
          "maximum": "3",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricNamespace": "",
              "metricResourceUri": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-app",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT5M",
              "timeAggregation": "Average",
              "operator": "GreaterThan",
              "threshold": 70
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricNamespace": "",
              "metricResourceUri": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-app",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT5M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 30
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          }
        ]
      }
    ],
    "enabled": true,
    "targetResourceUri": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-app"
  }
}

This JSON file sets up auto scaling for an Azure App Service named example-app in the example-rg resource group.

The profiles section defines rules: if CPU usage goes above 70% for 5 minutes, it adds one instance; if it drops below 30%, it removes one instance. The app will have at least 1 and at most 3 instances running.

The targetResourceUri points to the app service to scale.

Commands
This command creates an auto scale setting for the app service with minimum 1, maximum 3 instances, and default 1 instance.
Terminal
az monitor autoscale create --resource-group example-rg --resource example-app --resource-type Microsoft.Web/sites --name autoscaleAppService --min-count 1 --max-count 3 --count 1
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/microsoft.insights/autoscalesettings/autoscaleAppService", "name": "autoscaleAppService", "type": "Microsoft.Insights/autoscalesettings", "location": "global", "tags": {}, "properties": { "enabled": true, "targetResourceUri": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-app", "profiles": [], "notifications": [] } }
→
--min-count - Sets the minimum number of instances
→
--max-count - Sets the maximum number of instances
→
--count - Sets the default number of instances
This command adds a rule to increase instances by 1 when average CPU usage is above 70% for 5 minutes.
Terminal
az monitor autoscale rule create --resource-group example-rg --autoscale-name autoscaleAppService --condition "Percentage CPU > 70 avg 5m" --scale out 1 --cooldown 5m
Expected OutputExpected
{"name":"autoscaleAppService","resourceGroup":"example-rg","rules":[{"metricTrigger":{"metricName":"Percentage CPU","timeAggregation":"Average","operator":"GreaterThan","threshold":70,"timeGrain":"PT1M","timeWindow":"PT5M"},"scaleAction":{"direction":"Increase","type":"ChangeCount","value":"1","cooldown":"PT5M"}}]}
→
--condition - Defines the metric and threshold for scaling
→
--scale - Defines scaling direction and amount
→
--cooldown - Wait time before next scaling action
This command adds a rule to decrease instances by 1 when average CPU usage is below 30% for 5 minutes.
Terminal
az monitor autoscale rule create --resource-group example-rg --autoscale-name autoscaleAppService --condition "Percentage CPU < 30 avg 5m" --scale in 1 --cooldown 5m
Expected OutputExpected
{"name":"autoscaleAppService","resourceGroup":"example-rg","rules":[{"metricTrigger":{"metricName":"Percentage CPU","timeAggregation":"Average","operator":"LessThan","threshold":30,"timeGrain":"PT1M","timeWindow":"PT5M"},"scaleAction":{"direction":"Decrease","type":"ChangeCount","value":"1","cooldown":"PT5M"}}]}
→
--condition - Defines the metric and threshold for scaling
→
--scale - Defines scaling direction and amount
→
--cooldown - Wait time before next scaling action
This command shows the current auto scale settings to verify the configuration.
Terminal
az monitor autoscale show --resource-group example-rg --name autoscaleAppService
Expected OutputExpected
{ "name": "autoscaleAppService", "profiles": [ { "name": "AutoScaleProfile", "capacity": { "minimum": "1", "maximum": "3", "default": "1" }, "rules": [ { "metricTrigger": { "metricName": "Percentage CPU", "timeAggregation": "Average", "operator": "GreaterThan", "threshold": 70, "timeGrain": "PT1M", "timeWindow": "PT5M" }, "scaleAction": { "direction": "Increase", "type": "ChangeCount", "value": "1", "cooldown": "PT5M" } }, { "metricTrigger": { "metricName": "Percentage CPU", "timeAggregation": "Average", "operator": "LessThan", "threshold": 30, "timeGrain": "PT1M", "timeWindow": "PT5M" }, "scaleAction": { "direction": "Decrease", "type": "ChangeCount", "value": "1", "cooldown": "PT5M" } } ] } ], "enabled": true, "targetResourceUri": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-app" }
Key Concept

If you remember nothing else from this pattern, remember: auto scaling adjusts your app's resources automatically based on real-time usage to keep it fast and cost-effective.

Common Mistakes
Setting minimum and maximum instance counts too close or equal.
This stops auto scaling from adding or removing instances, making it useless.
Set a minimum lower than maximum to allow scaling up and down.
Using very low or very high CPU thresholds for scaling rules.
Low thresholds cause too many scale actions; high thresholds delay scaling and cause slow app response.
Choose balanced thresholds like 30% for scale in and 70% for scale out.
Not setting cooldown periods between scaling actions.
Without cooldown, the system may scale up and down rapidly, causing instability and extra cost.
Always set cooldowns (e.g., 5 minutes) to give time for changes to take effect.
Summary
Create an auto scale setting with minimum, maximum, and default instance counts.
Add rules to increase or decrease instances based on CPU usage thresholds.
Verify the auto scale configuration to ensure it matches your needs.

Practice

(1/5)
1. What is the main purpose of auto scaling in Azure App Service?
easy
A. Automatically adjust app resources based on demand
B. Manually increase server size when needed
C. Backup app data to cloud storage
D. Monitor user login activities

Solution

  1. Step 1: Understand auto scaling concept

    Auto scaling means the system changes resources automatically without manual intervention.
  2. Step 2: Identify the purpose in Azure App Service

    Azure App Service auto scaling adjusts the number of instances based on app demand to maintain performance and control costs.
  3. Final Answer:

    Automatically adjust app resources based on demand -> Option A
  4. Quick Check:

    Auto scaling = automatic resource adjustment [OK]
Hint: Auto scaling means automatic resource changes [OK]
Common Mistakes:
  • Confusing auto scaling with manual scaling
  • Thinking auto scaling backs up data
  • Assuming auto scaling monitors user activity
2. Which of the following is the correct way to set a CPU-based auto scale rule in Azure App Service?
easy
A. Set a rule to scale in when CPU usage < 90%
B. Set a rule to scale out when memory usage < 30%
C. Set a rule to scale out when CPU usage > 70%
D. Set a rule to scale out when disk space > 80%

Solution

  1. Step 1: Identify correct metric for scaling out

    CPU usage is a common metric to trigger scaling out when it exceeds a threshold.
  2. Step 2: Check the threshold and direction

    Scaling out happens when CPU usage is high (e.g., > 70%), not low or unrelated metrics like disk space.
  3. Final Answer:

    Set a rule to scale out when CPU usage > 70% -> Option C
  4. Quick Check:

    Scale out triggers on high CPU [OK]
Hint: Scale out when CPU usage is high, not low [OK]
Common Mistakes:
  • Using memory or disk space incorrectly for CPU scaling
  • Scaling in when CPU is still high
  • Setting wrong thresholds for scaling
3. Given this auto scale setting: minimum instances = 2, maximum instances = 5, scale out rule triggers at CPU > 60%, scale in rule triggers at CPU < 30%. If CPU usage rises from 50% to 65%, what happens?
medium
A. Instances reset to minimum count immediately
B. The number of instances increases by one, up to 5
C. No change in instances because CPU is below 70%
D. The number of instances decreases by one, down to 2

Solution

  1. Step 1: Analyze CPU usage against scale out rule

    CPU rose from 50% to 65%, which is above the 60% threshold for scaling out.
  2. Step 2: Apply scaling limits

    Instances will increase by one but will not exceed the maximum of 5 instances.
  3. Final Answer:

    The number of instances increases by one, up to 5 -> Option B
  4. Quick Check:

    CPU > 60% triggers scale out [OK]
Hint: Scale out triggers when CPU crosses threshold upwards [OK]
Common Mistakes:
  • Thinking CPU must be above 70% to scale out
  • Confusing scale in and scale out rules
  • Assuming immediate reset to minimum instances
4. You configured auto scaling with minimum 1 instance and maximum 3 instances. The scale out rule triggers at CPU > 50%. However, your app never scales out even when CPU is 80%. What is the most likely issue?
medium
A. CPU metric is not supported for scaling
B. The minimum instance count is too high
C. Maximum instance count is set too low
D. The scale out rule is disabled or not linked to the App Service

Solution

  1. Step 1: Check if scaling rules are active

    If the scale out rule is disabled or not properly linked, scaling won't trigger despite high CPU.
  2. Step 2: Verify instance limits and metric support

    Minimum and maximum instance counts are valid, and CPU is a supported metric, so these are unlikely causes.
  3. Final Answer:

    The scale out rule is disabled or not linked to the App Service -> Option D
  4. Quick Check:

    Active rules needed for scaling [OK]
Hint: Check if scaling rules are enabled and linked [OK]
Common Mistakes:
  • Assuming instance counts block scaling
  • Believing CPU metric is unsupported
  • Ignoring rule activation status
5. You want to optimize costs by setting auto scaling for your Azure App Service. You set minimum instances to 1 and maximum to 10. You add a scale out rule for CPU > 70% and a scale in rule for CPU < 40%. However, during peak hours, your app scales out to 10 instances quickly but never scales in after peak hours. What is the best way to fix this?
hard
A. Add a cooldown period to delay scaling in after peak hours
B. Increase the minimum instance count to 5
C. Remove the scale out rule to prevent scaling beyond 1 instance
D. Set scale in rule to CPU < 80% to scale in faster

Solution

  1. Step 1: Understand why scaling in doesn't happen

    Without a cooldown period, rapid fluctuations can prevent scale in or cause instability.
  2. Step 2: Apply cooldown period to stabilize scaling

    Adding a cooldown period delays scale in, allowing CPU to stay below threshold steadily before reducing instances.
  3. Final Answer:

    Add a cooldown period to delay scaling in after peak hours -> Option A
  4. Quick Check:

    Cooldown stabilizes scale in/out actions [OK]
Hint: Use cooldown to prevent rapid scale in/out flips [OK]
Common Mistakes:
  • Raising minimum instances unnecessarily
  • Removing scale out rule stops scaling out
  • Setting scale in threshold too high causes no scale in
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard