High availability and reliabilityIntermediate24 min read

What Does Step scaling policy Mean?

Reviewed byJohnson Ajibi· Senior Network & Security Engineer · MSc IT Security
On This Page

Quick Definition

A step scaling policy automatically adjusts the number of servers or containers in response to changes in demand. It uses predefined steps to add or remove resources in specific amounts, rather than a single fixed adjustment. This helps match capacity to actual load more precisely and prevents over-provisioning. It is commonly used in AWS Auto Scaling groups.

Commonly Confused With

Step scaling policyvsSimple scaling policy

A simple scaling policy performs a single fixed adjustment (e.g., add 2 instances) every time a CloudWatch alarm triggers. It does not consider the magnitude of the breach. Step scaling uses multiple steps based on how far the metric is from the threshold, allowing proportional responses.

If CPU exceeds 80%, simple scaling adds 2 instances regardless of whether CPU is 81% or 99%. Step scaling would add 2 instances at 81% but 5 instances at 99%.

Step scaling policyvsTarget tracking scaling policy

A target tracking policy automatically adjusts capacity to keep a metric at a specific target value (e.g., keep CPU at 50%). You do not define steps or adjustments. Step scaling requires you to define steps and adjustments manually. Target tracking is easier for simple use cases, while step scaling gives more control.

If you want CPU to stay around 50%, use target tracking. If you want to add 2 instances when CPU hits 70%, 5 when it hits 85%, and 10 when it hits 95%, use step scaling.

Step scaling policyvsScheduled scaling

Scheduled scaling changes capacity at specific times, regardless of the current metric values. Step scaling is reactive to metric alarms. Scheduled scaling is used for predictable traffic patterns (e.g., every weekday at 9 AM), while step scaling is used for unpredictable spikes.

If you know traffic will spike every day at 6 PM, use scheduled scaling to increase capacity at 5:50 PM. If spikes are random, use step scaling based on CPU alarms.

Step scaling policyvsPredictive scaling

Predictive scaling uses machine learning to forecast traffic and adjust capacity proactively. Step scaling is reactive. Predictive scaling is more advanced and requires historical data, while step scaling is simpler and works immediately.

If you have 6 months of traffic data showing regular patterns, predictive scaling might pre-launch instances. For a brand new application with no history, step scaling based on real-time metrics is better.

Must Know for Exams

Step scaling policies are a key concept in the AWS Certified Solutions Architect – Associate (SAA-C03) exam, particularly in the domain of high availability and elasticity. They also appear in the AWS Certified SysOps Administrator – Associate (SOA-C02) exam, where you may be asked to troubleshoot scaling issues or recommend a scaling solution. In the AWS Certified Developer – Associate (DVA-C02) exam, you might need to understand how step scaling interacts with application load and deployment strategies.

In the Solutions Architect exam, questions often present a scenario where an application experiences variable traffic patterns. You will be asked to design an Auto Scaling solution that adjusts capacity based on the severity of the load. Step scaling is the correct answer when the requirement specifies that the system should add more instances for larger metric breaches. You might also need to differentiate step scaling from simple scaling and target tracking policies.

For the SysOps Administrator exam, you may encounter questions that require you to interpret CloudWatch alarm configurations and understand how step scaling policies respond to multi-step alarm breaches. You might need to identify why a scaling event did not occur as expected, or configure a policy to meet specific performance requirements. Troubleshooting scenarios often involve examining cooldown periods, warm-up times, and step definitions.

In the Developer exam, step scaling policies are relevant when discussing application elasticity and how to handle scaling of backend services. You might be asked how to configure a policy that scales containers in Amazon ECS or instances in an Auto Scaling group based on a custom metric. Knowing the difference between step scaling and target tracking is crucial because target tracking is often simpler to set up, but step scaling gives more precise control.

Questions can be multiple-choice, scenario-based, or even drag-and-drop in format. Common traps include confusing step scaling with simple scaling, or not understanding that step scaling can also be used for scale-in events. Another common question type is asking you to choose the minimum number of steps needed to handle a given metric range.

To prepare, focus on memorizing the key differences: simple scaling does one fixed adjustment per alarm, step scaling does multiple adjustments based on breach size, and target tracking maintains a target value. Practice with AWS documentation examples and scenario-based questions from practice exams.

Simple Meaning

Imagine you run a lemonade stand on a busy street corner. On a normal day, you have one person serving. When a crowd shows up, you don’t just add one more helper, you look at how big the crowd is. If there are 20 extra customers, you might add two helpers. If there are 50 extra customers, you add five helpers. This is the idea behind a step scaling policy. Instead of making the same adjustment every time there is a change, the policy looks at how much the demand has changed and then adjusts resources by a corresponding amount.

In the world of cloud computing, servers handle website traffic, process data, or run applications. When traffic spikes, you want to add more servers to handle the load. When traffic drops, you want to remove servers to save money. A simple scaling policy might add one server whenever CPU usage goes above 80%. That works, but it can be slow if traffic surges quickly. A step scaling policy is smarter. It says: if CPU usage is between 80% and 90%, add two servers. If CPU usage is above 90%, add five servers. This way, the system reacts faster and more accurately.

Think of it like a thermostat that not only turns on the air conditioner when it gets hot, but also adjusts the fan speed based on how hot the room is. Step scaling policies give your cloud infrastructure a more nuanced way to handle changing conditions. They help keep applications running smoothly without wasting resources. For IT professionals studying for cloud certifications, understanding step scaling is key to designing cost-effective, resilient systems.

Full Technical Definition

A step scaling policy is an AWS Auto Scaling feature that allows you to define scaling adjustments based on the size of an alarm breach. Unlike simple scaling policies, which perform a single fixed adjustment when an alarm is triggered, step scaling policies allow you to specify multiple adjustment steps based on the magnitude of the metric deviation. Each step defines a lower and upper boundary for the alarm metric, and a corresponding adjustment (a number of instances to add or remove) or a percentage of the current group size.

The policy works in conjunction with Amazon CloudWatch alarms. When a metric like CPUUtilization or RequestCount breaches the alarm threshold, CloudWatch sends a notification to the Auto Scaling group. The step scaling policy evaluates which step the current metric value falls into and applies the corresponding scaling adjustment. For example, you might configure two steps: one for when CPUUtilization is between 80% and 90% (add 2 instances) and another for when it is above 90% (add 5 instances). The policy also includes a warm-up time, which prevents further scaling actions until the newly launched instances have had time to start serving traffic.

Step scaling policies support both scale-out (increase capacity) and scale-in (decrease capacity) operations. You can configure separate policies for scaling out and scaling in, or use a single policy with both directions if you set the alarm to breach on both high and low values. The policy also includes cooldown periods that help stabilize the scaling process. When a scaling activity completes, the cooldown period prevents additional scaling actions for a specified duration, giving the system time to stabilize before the next evaluation.

In AWS, step scaling policies are defined as part of an Auto Scaling group. They are configured through the AWS Management Console, CLI, or SDKs. You specify the policy name, the CloudWatch alarm to monitor, the adjustment type (ExactCapacity, ChangeInCapacity, or PercentChangeInCapacity), and the steps. Each step has a lower bound and upper bound (which can be negative or positive relative to the alarm threshold) and a scaling adjustment. The steps are evaluated in order, and the first matching step is applied.

One important technical detail is that step scaling policies use the concept of "breach duration", the alarm must be in the ALARM state for a specified number of consecutive evaluation periods before the scaling action is triggered. This prevents scaling based on transient spikes. The policy can be configured to ignore alarms that are in the INSUFFICIENT_DATA state.

Step scaling policies are more sophisticated than simple scaling because they allow multiple tiers of response. However, they are simpler than target tracking policies, which aim to keep a metric at a specific target value. Step scaling gives you direct control over the magnitude of the adjustment, making it ideal for workloads with predictable spike patterns where you want to add capacity aggressively when demand is very high.

Real-Life Example

Consider a city bus system. During normal hours, the transit authority runs buses every 20 minutes. When a big sporting event ends, thousands of people suddenly need to leave the stadium. The transit authority does not just add one extra bus. They look at how many people are waiting. If there are 200 people, they add 5 buses. If there are 500 people, they add 15 buses. This is exactly how a step scaling policy works. The number of buses (resources) added corresponds to the size of the crowd (demand).

In a cloud environment, your application might be an e-commerce site. On Black Friday, traffic might be 10 times higher than normal. A simple scaling policy that adds one server per alarm breach would take a long time to add enough servers, potentially causing the site to slow down or crash. A step scaling policy, on the other hand, can be configured to add 10 servers when traffic spikes are extreme. This prevents performance degradation and keeps customers happy.

Another everyday analogy is a restaurant kitchen. When the dinner rush starts, the head chef doesn’t ask just one more cook to come in. They call in extra help based on the number of reservations. If there are 50 reservations, they call two extra cooks. If there are 150 reservations, they call five extra cooks. This ensures food is prepared quickly without overstaffing during slower hours. Step scaling policies do the same for your cloud infrastructure, they add just the right amount of capacity to handle the current load.

Why This Term Matters

Step scaling policies matter because they enable cloud architects to build systems that are both highly available and cost-efficient. Without step scaling, you would have to rely on either simple scaling (which can be too slow) or manual scaling (which requires human intervention). Step scaling automates the response to varying load in a way that is proportional to the need. This reduces the risk of application downtime during traffic spikes.

In a practical IT context, many applications experience unpredictable traffic patterns. An online news site might see a sudden surge when a major story breaks. A gaming platform might see peak loads on weekends. Using step scaling policies, you can ensure that additional resources are provisioned quickly without over-provisioning during normal times. This directly impacts the bottom line because you pay only for the resources you use.

Another reason step scaling matters is that it helps maintain service level agreements (SLAs). If your application starts to slow down because of insufficient capacity, you may violate uptime or performance guarantees. Step scaling policies, combined with appropriate CloudWatch alarms, give you the ability to react to performance degradation before users are impacted. For IT professionals managing production systems, this is a critical tool for ensuring reliability.

Finally, step scaling policies are a core topic in several cloud certification exams, including AWS Certified Solutions Architect, AWS Certified Developer, and AWS Certified SysOps Administrator. Understanding how to configure them and when to use them versus other scaling strategies is a must-know for anyone pursuing these certifications. Exam questions often test your ability to choose the right scaling method for a given scenario, and step scaling is a common correct answer when the requirement is for a granular, metric-driven response.

How It Appears in Exam Questions

Step scaling policy questions typically appear in scenario-based format. For example: "An e-commerce application experiences traffic spikes during flash sales. CPU utilization jumps to 90% within minutes. The current Auto Scaling group uses a simple scaling policy that adds 2 instances when CPU exceeds 80%. The application becomes slow. What should you do?" The correct answer often involves changing to a step scaling policy with multiple steps, such as adding 2 instances at 80% and 5 instances at 90%.

Another pattern is a configuration question: "A SysOps administrator is configuring a step scaling policy for an Auto Scaling group. The alarm metric is average CPU utilization. The administrator wants to add 2 instances when CPU is between 70% and 85%, and 4 instances when CPU is above 85%. Which step boundaries should be set?" You need to know that the lower and upper bounds are relative to the alarm threshold. If the alarm threshold is 70%, the first step might have a lower bound of 0 and upper bound of 15 (since 85-70=15), and the second step might have a lower bound of 15 and no upper bound.

Troubleshooting questions might show a CloudWatch alarm graph with multiple breaches, and ask why the Auto Scaling group did not add enough instances. The answer could be that the cooldown period prevented subsequent scaling actions, or that the warm-up time caused the policy to ignore alarms while instances were still initializing.

Some questions test your understanding of step scaling versus target tracking. They might say: "An application needs to keep CPU utilization at approximately 50%. Which scaling policy should you use?" The answer is target tracking, not step scaling, because step scaling is designed for proportional adjustments, not maintaining a steady target.

Finally, you might see questions about scaling in. For instance: "A step scaling policy for scale-in is configured with a step that removes 1 instance when CPU is below 20%. What happens if CPU drops to 10%?" The answer is that it will remove 1 instance per evaluation, but only one at a time if only one step is defined. If multiple steps are defined, it could remove more.

Expect to see step scaling policies in the context of AWS services like EC2 Auto Scaling, Application Auto Scaling (for ECS, DynamoDB, etc.), and even Lambda provisioned concurrency scaling.

Practise Step scaling policy Questions

Test your understanding with exam-style practice questions.

Practise

Example Scenario

Imagine you are the IT administrator for a video streaming website. Every evening, between 7 PM and 10 PM, traffic increases as people watch movies. On weekends, the traffic is even higher. You need to ensure that the website loads quickly for all users.

You decide to use AWS Auto Scaling with a step scaling policy. First, you create a CloudWatch alarm that monitors average CPU utilization of your web server instances. The alarm is set to go off when CPU exceeds 70%. But you don’t just add one instance when the alarm triggers. Instead, you create a step scaling policy with three steps.

Step 1: If CPU is between 70% and 80%, add 2 instances. Step 2: If CPU is between 80% and 90%, add 5 instances. Step 3: If CPU is above 90%, add 10 instances. You also set a warm-up time of 300 seconds so new instances have time to start serving traffic before the policy makes another scaling decision.

On a normal Tuesday evening, CPU reaches 75%. The step scaling policy triggers Step 1 and adds 2 instances. After a few minutes, the CPU drops to 65% and the alarm returns to OK state. The new instances remain running. On Friday night, a new popular movie is released, and CPU spikes to 92%. The policy triggers Step 3 and adds 10 instances immediately. The website stays fast and responsive.

Without step scaling, you would have had to add instances one by one, causing the site to be slow for several minutes. This scenario shows how step scaling policies provide a proportional response to demand, ensuring high availability during unpredictable traffic surges.

Common Mistakes

Confusing step scaling with simple scaling and thinking they are the same.

Simple scaling applies a single fixed adjustment every time the alarm triggers, while step scaling applies different adjustments based on the magnitude of the breach. Using simple scaling in a scenario that requires a proportional response will result in insufficient capacity during large spikes.

Remember: simple scaling = one size fits all, step scaling = different sizes for different problems.

Setting too many steps with very narrow boundaries, causing frequent unnecessary scaling actions.

Excessive steps can lead to 'scaling thrash,' where instances are added and removed rapidly, increasing costs and instability. CloudWatch alarm evaluation periods and cooldown times can mitigate this, but overly granular steps are still problematic.

Use a reasonable number of steps (2-4) with meaningful metric ranges that reflect actual load levels. Test and adjust based on historical data.

Forgetting to configure a scale-in step scaling policy, leaving capacity high even after traffic drops.

Without a scale-in policy, the Auto Scaling group will not reduce capacity when demand decreases, leading to unnecessary costs. The group might eventually scale in via a default termination policy, but that is not tied to metric changes.

Create a separate step scaling policy for scale-in, with steps that remove instances when CPU is low (e.g., below 30%).

Setting the warm-up time too short, causing the policy to add more instances before the new ones are ready.

If warm-up is too short, the policy may see the metric still high because new instances haven't started handling traffic, triggering another scaling action. This can lead to over-provisioning.

Set the warm-up time to match the average time it takes for a new instance to become healthy and start serving requests. For most applications, 180-300 seconds is a good starting point.

Assuming step scaling policies work with any metric without configuring the CloudWatch alarm correctly.

Step scaling policies require a CloudWatch alarm to trigger them. If the alarm is misconfigured (wrong metric, wrong threshold, insufficient data points), the policy will never execute. Also, the alarm must be of type 'metric alarm' and must have a defined threshold.

Always verify the CloudWatch alarm is in ALARM state before expecting scaling actions. Use the CloudWatch console to test the alarm.

Using step scaling when target tracking would be simpler and more effective.

Target tracking automatically adjusts capacity to keep a metric at a specified target value, which is often simpler to manage than defining multiple steps. Using step scaling for a simple 'keep CPU at 50%' requirement adds unnecessary complexity.

Choose step scaling only when you need distinct responses for different levels of metric breach. For maintaining a target, use target tracking.

Exam Trap — Don't Get Fooled

{"trap":"You see a question describing a scenario where CPU spikes to 95% and the step scaling policy only adds 2 instances. You think the policy is broken because it didn't add more instances.","why_learners_choose_it":"Learners assume that a step scaling policy will always add the maximum number of instances when the metric is very high.

They miss the fact that the policy might have only one step defined, or the upper bound of the step may not cover the 95% value, or a cooldown period is still in effect.","how_to_avoid_it":"Always check the step definitions: how many steps are defined and what are their boundaries? Also check if a cooldown period or warm-up time is preventing the action.

The policy might be working exactly as configured, but with insufficient granularity. Look for details about the number of steps and their threshold ranges in the question."

Step-by-Step Breakdown

1

Monitor the metric with CloudWatch alarm

The process begins when a CloudWatch alarm monitors a metric such as CPUUtilization, NetworkIn, or RequestCount. The alarm has a threshold and an evaluation period. When the metric exceeds the threshold for the specified number of consecutive periods, the alarm transitions to ALARM state.

2

Alarm triggers the step scaling policy

The Auto Scaling group has a step scaling policy associated with this alarm. When the alarm enters ALARM state, it publishes a notification to the Auto Scaling group's scaling process, which starts evaluating the step scaling policy.

3

Evaluate the metric value against step definitions

The policy takes the current metric value (e.g., CPU 92%) and compares it to the defined steps. Each step has a lower bound and upper bound (relative to the alarm threshold). The policy finds the first step whose boundaries include the current metric value. For example, if the threshold is 80% and the step defines lower bound 10 and upper bound 20, it covers metric values from 90% to 100%.

4

Apply the scaling adjustment

Based on the matching step, the policy applies the scaling adjustment. This could be a fixed number of instances (e.g., add 5), a change in capacity (e.g., increase by 3), or a percentage of the current group size (e.g., increase by 20%). The Auto Scaling group then launches or terminates instances accordingly.

5

Wait for warm-up time

After the scaling action starts, the policy enters a warm-up period (configurable, e.g., 300 seconds). During this time, the policy ignores any further alarms that might trigger. This prevents additional scaling actions before the new instances have had time to stabilize and start affecting the metric.

6

Continue monitoring and cooldown

After the warm-up expires, the policy resumes monitoring. A cooldown period (separate from warm-up) may also be applied to the entire Auto Scaling group, which prevents any scaling actions (including from other policies) for a set duration. This helps stabilize the system before the next evaluation.

7

Scale-in on the downside

A separate step scaling policy (or the same policy with different steps) can handle scale-in events. When the metric falls below a threshold for the scale-in alarm, the policy evaluates appropriate steps to remove instances proportionally. This reduces costs during low demand.

Practical Mini-Lesson

A step scaling policy is a powerful tool for managing the elasticity of your cloud resources, but it requires careful planning to use effectively. In practice, you start by analyzing your application's traffic patterns. Look at historical data to understand typical load levels and spike sizes. This helps you decide how many steps to create and what the boundaries should be.

When configuring the policy in AWS, you will use the Auto Scaling group console or the AWS CLI. You define the policy name, the CloudWatch alarm, the adjustment type (ChangeInCapacity is most common), and the steps. Each step requires a lower and upper bound relative to the alarm threshold. For instance, if your alarm fires at 80% CPU, a step with lower bound 0 and upper bound 10 covers CPU from 80% to 90%. A step with lower bound 10 and no upper bound covers CPU above 90%.

One common best practice is to use separate step scaling policies for scale-out and scale-in. This gives you independent control over the response to high and low load. You can also combine step scaling with other policies, but be careful: if you have both a step scaling and a target tracking policy attached to the same Auto Scaling group, they can conflict. AWS generally recommends using only one type of dynamic scaling policy per group for simplicity.

What can go wrong? The most frequent issues are misconfigured steps, cooldown periods that are too long or too short, and alarm thresholds that are set too tightly. For example, if your alarm threshold is 80% and your first step starts at 0, even a tiny breach will trigger the step. This can lead to frequent scaling. Instead, make sure the steps start at a meaningful offset. Another problem is not testing the policy in a non-production environment. Always simulate traffic or use CloudWatch synthetic metrics to verify the policy behaves as expected.

Professionals should also monitor the scaling history in the Auto Scaling group console. This shows every scaling action, including which policy triggered it and how many instances were changed. If you see unexpected scaling, you can trace it back to the policy and adjust.

Finally, remember that step scaling is not just for EC2 instances. It can be used with Application Auto Scaling for services like Amazon ECS, DynamoDB, and Aurora. The concepts are the same, but the metrics and targets differ. For example, with DynamoDB you might use ConsumedReadCapacityUnits as the metric.

Memory Tip

Think of step scaling as a fire escape plan: for a small fire, use the stairs; for a big fire, use the ladder. The more severe the alarm, the more capacity you add.

Covered in These Exams

Current Exam Context

Current exam versions that test this topic — use these objectives when studying.

Related Glossary Terms

Frequently Asked Questions

Can I use step scaling policies for both scale-out and scale-in?

Yes, you can create separate step scaling policies for scale-out and scale-in, each with its own CloudWatch alarm and steps. Alternatively, you can use a single policy with steps for both directions, but that is less common and requires careful configuration.

What is the difference between warm-up time and cooldown period in step scaling?

Warm-up time applies per policy and prevents the policy from triggering additional actions after a scaling event until the new instances are ready. Cooldown period applies to the entire Auto Scaling group and prevents any scaling actions from any policy for a set duration after a scaling activity completes.

Can I use step scaling with Amazon ECS services?

Yes, step scaling is supported by Application Auto Scaling for Amazon ECS services, DynamoDB tables, Aurora replicas, and more. The configuration is similar to EC2 Auto Scaling.

How do I decide the number of steps for a step scaling policy?

Start with 2 or 3 steps based on your workload's typical metric ranges. For example, a moderate breach (80-90% CPU) and a severe breach (above 90%). You can add more steps later based on monitoring data, but too many steps can cause complexity and thrashing.

What happens if the metric falls between two steps?

The step scaling policy evaluates steps in order and applies the first step that matches the metric value. The steps should have contiguous boundaries to avoid gaps. If a metric value falls outside all defined steps, no scaling action occurs.

Is step scaling policy suitable for applications with steady traffic?

No, for steady traffic, target tracking or scheduled scaling is more appropriate. Step scaling is best for workloads with unpredictable spikes of varying magnitude.

Can I combine step scaling with target tracking in the same Auto Scaling group?

AWS does not recommend combining different dynamic scaling policy types on the same Auto Scaling group because they can conflict and cause unexpected behavior. Stick to one type per group.

Summary

A step scaling policy is a type of AWS Auto Scaling policy that adjusts capacity based on the severity of a metric breach. Unlike simple scaling, which makes the same adjustment every time, step scaling uses multiple predefined steps to add or remove resources proportionally. This results in faster responses to large spikes and more efficient use of resources during moderate load changes.

Understanding step scaling is crucial for IT certification exams, especially the AWS Certified Solutions Architect, SysOps Administrator, and Developer exams. You need to know how to configure steps, the role of CloudWatch alarms, warm-up times, and cooldown periods, and when to choose step scaling over simple, target tracking, or scheduled scaling. Common exam traps include confusing step scaling with simple scaling, misconfiguring step boundaries, and forgetting to set up scale-in policies.

In real-world practice, step scaling helps maintain application performance and cost efficiency by providing a proportional, automated response to changing demand. It is a foundational skill for any cloud professional responsible for designing resilient and scalable systems. Use the memory tip: "The bigger the fire, the more fire engines you send" to remember that step scaling adjusts resources according to the size of the problem.