Autoscaling
Adding and removing capacity automatically in response to a demand signal, to track load without paying for peak all the time.
The three decisions are the signal, the delay and the bounds. CPU is the default signal and often the wrong one — queue depth or request concurrency usually tracks user-visible pressure better, because a service can be latency-bound while CPU is idle.
The delay is what makes autoscaling fail in practice. Detection interval plus instance start plus application warm-up is frequently two to five minutes, which is far slower than a traffic spike. Predictive or scheduled scaling ahead of known patterns, and a warm baseline that absorbs the first minutes, are the usual answers.
Always set a maximum. An autoscaler responding to a retry storm or a runaway loop will scale into a very large bill, and the maximum is the only thing standing between a bug and that bill.