Target Tracking vs Step Scaling Policies

~8 min read

The two dynamic scaling policy types and when the extra control of step scaling is actually worth the added configuration.

Target tracking scaling is the simpler and more commonly used dynamic scaling type: you declare a target value for a chosen metric (like 'keep average CPU at 50%'), and AWS's own scaling algorithm calculates and applies the needed capacity adjustments automatically, functioning similarly to a thermostat maintaining a set temperature. Step scaling gives more granular, explicit control: you define specific capacity change amounts tied to specific metric threshold ranges (for example, add 2 instances if CPU is between 70-90%, add 5 instances if CPU exceeds 90%), which is useful when different severities of load genuinely warrant different-sized responses rather than a smooth, algorithmically-calculated adjustment. Most workloads are well served by target tracking's simplicity; step scaling is chosen specifically when a team has enough operational history with a workload to know that certain load thresholds warrant disproportionately larger capacity jumps than a target-tracking algorithm would naturally apply.

💬 Deep Dive with AI

Key points

  • Target tracking: declare a target metric value, AWS calculates and applies capacity changes automatically
  • Step scaling: explicitly define capacity change amounts tied to specific metric threshold ranges
  • Target tracking requires less tuning and fits most workloads by default
  • Step scaling is chosen when different load severities genuinely warrant disproportionately different-sized responses