Bird
Raised Fist0
AWScloud~5 mins

Scaling policies (target tracking, step, simple) in AWS - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Scaling policies (target tracking, step, simple)
O(n)
Understanding Time Complexity

When using scaling policies in AWS, it's important to understand how the number of scaling actions grows as demand changes.

We want to know how the system reacts over time as load increases or decreases.

Scenario Under Consideration

Analyze the time complexity of these scaling policy operations.


aws application-autoscaling put-scaling-policy --policy-name my-step-policy --service-namespace ecs \
  --resource-id service/default/sample-webapp --scalable-dimension ecs:service:DesiredCount \
  --policy-type StepScaling --step-scaling-policy-configuration file://step-config.json

aws application-autoscaling put-scaling-policy --policy-name my-target-tracking-policy --service-namespace ecs \
  --resource-id service/default/sample-webapp --scalable-dimension ecs:service:DesiredCount \
  --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://target-tracking.json
    

These commands set up step and target tracking scaling policies for an ECS service.

Identify Repeating Operations

Look at what happens repeatedly as load changes:

  • Primary operation: Scaling actions that adjust the number of instances.
  • How many times: Each scaling action happens whenever the metric crosses thresholds or deviates from the target.
How Execution Grows With Input

As load increases, the number of scaling actions grows roughly in proportion to how often the metric crosses thresholds.

Input Size (Load Changes)Approx. Scaling Actions
10About 10 scaling actions
100About 100 scaling actions
1000About 1000 scaling actions

Pattern observation: Scaling actions increase linearly with the number of load changes.

Final Time Complexity

Time Complexity: O(n)

This means the number of scaling actions grows directly with the number of load changes.

Common Mistake

[X] Wrong: "Scaling happens instantly and only once regardless of load changes."

[OK] Correct: Scaling policies react each time the metric crosses thresholds, so multiple scaling actions happen as load fluctuates.

Interview Connect

Understanding how scaling actions grow with load helps you design systems that respond well to demand and avoid surprises in performance.

Self-Check

What if we changed from step scaling to simple scaling? How would the time complexity change?

Practice

(1/5)
1. What is the main purpose of a target tracking scaling policy in AWS Auto Scaling?
easy
A. To automatically adjust resources to keep a metric close to a target value
B. To manually increase or decrease resources based on user input
C. To schedule scaling actions at fixed times regardless of load
D. To disable scaling during peak hours

Solution

  1. Step 1: Understand target tracking policy function

    Target tracking automatically adjusts resources to keep a metric (like CPU usage) near a set target value.
  2. Step 2: Compare with other options

    Manual scaling and scheduled scaling do not automatically adjust based on metrics, and disabling scaling is unrelated.
  3. Final Answer:

    To automatically adjust resources to keep a metric close to a target value -> Option A
  4. Quick Check:

    Target tracking = automatic metric-based scaling [OK]
Hint: Target tracking = auto adjust to keep metric near target [OK]
Common Mistakes:
  • Confusing target tracking with manual scaling
  • Thinking scheduled scaling is target tracking
  • Assuming target tracking disables scaling
2. Which of the following is the correct JSON snippet to define a simple scaling policy in AWS Auto Scaling?
easy
A. {"PolicyName": "ScaleOut", "PolicyType": "TargetTrackingScaling", "TargetValue": 50}
B. {"PolicyName": "ScaleOut", "PolicyType": "StepScaling", "StepAdjustments": [{"MetricIntervalLowerBound": 0, "ScalingAdjustment": 1}]}
C. {"PolicyName": "ScaleOut", "PolicyType": "SimpleScaling", "AdjustmentType": "ChangeInCapacity", "ScalingAdjustment": 2}
D. {"PolicyName": "ScaleOut", "PolicyType": "ScheduledScaling", "Schedule": "cron(0 12 * * ? *)"}

Solution

  1. Step 1: Identify simple scaling policy syntax

    Simple scaling uses PolicyType "SimpleScaling" with AdjustmentType and ScalingAdjustment fields.
  2. Step 2: Verify JSON options

    {"PolicyName": "ScaleOut", "PolicyType": "SimpleScaling", "AdjustmentType": "ChangeInCapacity", "ScalingAdjustment": 2} matches simple scaling syntax; others are for target tracking, step scaling, or scheduled scaling.
  3. Final Answer:

    {"PolicyName": "ScaleOut", "PolicyType": "SimpleScaling", "AdjustmentType": "ChangeInCapacity", "ScalingAdjustment": 2} -> Option C
  4. Quick Check:

    Simple scaling = PolicyType "SimpleScaling" [OK]
Hint: Simple scaling uses PolicyType "SimpleScaling" with adjustment fields [OK]
Common Mistakes:
  • Using TargetTrackingScaling type for simple scaling
  • Confusing step scaling syntax with simple scaling
  • Including schedule fields in simple scaling
3. Given this step scaling policy snippet:
{
  "PolicyType": "StepScaling",
  "StepAdjustments": [
    {"MetricIntervalLowerBound": 0, "ScalingAdjustment": 1},
    {"MetricIntervalLowerBound": 10, "ScalingAdjustment": 2}
  ]
}

If the metric increases by 12 units, how many instances will be added?
medium
A. 0
B. 1
C. 3
D. 2

Solution

  1. Step 1: Understand step adjustments

    Each step defines scaling for metric intervals. For metric increase of 12, check which intervals apply.
  2. Step 2: Find matching step

    12 is >=10, so the second step applies with ScalingAdjustment 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Metric 12 >= 10 -> add 2 instances [OK]
Hint: Metric value matches highest lower bound step [OK]
Common Mistakes:
  • Adding adjustments from both steps
  • Choosing the first step only
  • Ignoring metric intervals
4. You configured a step scaling policy but it never triggers scaling actions even when the metric crosses thresholds. What is the most likely cause?
medium
A. The scaling adjustment values are negative
B. The metric alarms are not properly linked to the scaling policy
C. The target tracking policy is overriding the step scaling policy
D. The Auto Scaling group has no instances

Solution

  1. Step 1: Check alarm linkage

    Step scaling policies rely on CloudWatch alarms to trigger. If alarms are not linked, no scaling occurs.
  2. Step 2: Evaluate other options

    Target tracking does not override step scaling; negative adjustments cause scale-in, not no action; no instances means no scaling needed.
  3. Final Answer:

    The metric alarms are not properly linked to the scaling policy -> Option B
  4. Quick Check:

    Missing alarm linkage = no scaling trigger [OK]
Hint: Step scaling needs alarms linked to trigger [OK]
Common Mistakes:
  • Assuming target tracking disables step scaling
  • Ignoring alarm configuration
  • Confusing negative adjustment with no scaling
5. You want to keep your application's CPU usage at 50% using AWS Auto Scaling. You also want to add 2 instances if CPU usage goes above 70%, and remove 1 instance if it drops below 30%. Which combination of scaling policies should you use?
hard
A. Use a target tracking policy for 50% CPU and step scaling for adding/removing instances at 70% and 30%
B. Use only a simple scaling policy with fixed adjustments
C. Use only a target tracking policy with target 50%
D. Use scheduled scaling to add and remove instances at fixed times

Solution

  1. Step 1: Understand target tracking role

    Target tracking keeps CPU near 50% automatically adjusting capacity.
  2. Step 2: Understand step scaling role

    Step scaling defines specific actions when CPU crosses 70% (add 2) or 30% (remove 1).
  3. Step 3: Combine policies

    Use target tracking for steady state and step scaling for aggressive changes beyond thresholds.
  4. Final Answer:

    Use a target tracking policy for 50% CPU and step scaling for adding/removing instances at 70% and 30% -> Option A
  5. Quick Check:

    Target tracking + step scaling = precise control [OK]
Hint: Combine target tracking for steady and step scaling for thresholds [OK]
Common Mistakes:
  • Using only one policy type for all needs
  • Confusing scheduled scaling with metric-based scaling
  • Ignoring removal scaling actions
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