Короткий ответ
Target tracking автоматически подбирает число инстансов, чтобы держать метрику около заданного целевого значения; step scaling меняет число инстансов ступенчато в зависимости от того, насколько метрика превысила порог; scheduled scaling заранее меняет ёмкость по расписанию независимо от текущей метрики.
Как это работает подробнее
target tracking использует управляющий алгоритм, который сам вычисляет, сколько инстансов добавить/убрать; step scaling требует вручную определить пороги и для каждого — конкретный шаг изменения; scheduled scaling просто меняет min/max/desired в заданное время.
Пример кода
example.txt
Target tracking: CPUUtilization target = 55%
Step scaling:
CPU 70-85% -> +2 instances
CPU >85% -> +5 instances
CPU <40% -> -1 instance
Scheduled: будни 08:00 desired=10, будни 20:00 desired=3Что использовать на практике
- Рекомендация. target tracking — разумный выбор по умолчанию для большинства веб-нагрузок с одной ключевой метрикой; step scaling применяют, когда нужна более тонкая реакция на разные уровни нагрузки; scheduled scaling используют для заранее известных предсказуемых паттернов.
- Проверка. при резком скачке CPU до 90% step scaling должен сразу добавить 5 инстансов, тогда как чистый target tracking подстраивался бы более плавно за несколько циклов оценки.
Подводные камни
- Риск. использовать только scheduled scaling для нагрузки, которая на самом деле непредсказуема, и получать нехватку ёмкости при отклонении от графика
- Риск. настраивать step scaling с порогами, которые пересекаются или дают противоречивые шаги
- Риск. комбинировать target tracking и step scaling на одной метрике без понимания их взаимодействия.