Worker instances drain an SQS queue. During traffic spikes the backlog grows because there aren't enough workers. What's the correct way to scale the worker fleet automatically with queue depth?
A.Scheduled scaling adding instances every hour
Schedules can't react to unplanned spikes.
B.Target tracking scaling on CPU utilization
CPU may stay low while backlog explodes — wrong signal.
C.Step scaling on the queue's ApproximateNumberOfMessagesVisible metric via a CloudWatch alarm
Correct. Backlog metric → alarm → scaling steps.
D.Increase the queue's visibility timeout
Visibility timeout controls message lock time, not capacity.
Why this answer
Scaling on ApproximateNumberOfMessagesVisible is the canonical queue-depth pattern: a CloudWatch alarm on backlog size drives scaling steps so workers grow in proportion to actual work. CPU-based scaling lags (workers can be I/O-bound), and scheduled scaling ignores real demand.
Correct answer: C · Last reviewed 2026-11-02
Official AWS references
Practice this interactively
Answer without seeing the solution first in the Reliability & DR practice session.
Practice Reliability & DR