Автоскейлинг

Сервера сами появляются под нагрузкой и исчезают, когда она спадает.

Auto Scaling Group (ASG) — группа инстансов, которая автоматически увеличивает и уменьшает число серверов в зависимости от нагрузки и заданных правил.

Зачем нужен автоскейлинг

Нагрузка редко бывает постоянной: днём пользователей много, ночью мало, в распродажу — пик. Держать «на всякий случай» десять серверов круглосуточно — дорого, а двух может не хватить в час пик. Автоскейлинг решает это: серверов ровно столько, сколько нужно прямо сейчас.

Как настраивается группа

У группы три ключевых числа и правила масштабирования:

  • min — минимум серверов (всегда работает хотя бы столько).
  • desired — желаемое текущее число.
  • max — потолок, выше которого группа не вырастет (защита от разорения).
Метрика: средняя загрузка CPU по группе

CPU > 70% дольше 5 мин  ->  добавить инстанс  (scale out)
CPU < 30% дольше 10 мин ->  убрать инстанс    (scale in)

Границы: min=2, max=8  -> группа держится в этом диапазоне

Правило обычно завязано на метрику CloudWatch: например, средняя загрузка CPU. Превысила порог — группа добавляет сервер; упала — убирает.

Связка с балансировщиком

Автоскейлинг почти всегда работает в паре с ELB. Новый инстанс автоматически регистрируется в балансировщике и начинает получать трафик, а удаляемый — корректно выводится из ротации. Вместе они дают и масштабируемость, и отказоустойчивость.

Как работает под капотом

Группа использует launch template — шаблон, описывающий, какой инстанс создавать (AMI, тип, сеть, security group). Когда метрика пробивает порог, политика масштабирования запускает новый инстанс из этого шаблона; через минуту-две он готов и подключается к балансировщику. Чтобы группа не «дёргалась» от каждого всплеска, действует cooldown — пауза после изменения, в течение которой новые срабатывания подавляются. Auto Scaling также следит за здоровьем: если инстанс умер или провалил health check, группа сама заменит его новым, поддерживая desired-количество.

Частые ошибки

  • Не задать max. Без потолка ошибка или атака могут раздуть группу до сотен инстансов и огромного счёта.
  • Слишком агрессивные пороги. Без cooldown группа будет постоянно добавлять и убирать сервера («флаппинг»).
  • Состояние на самом инстансе. Инстансы появляются и исчезают; данные должны жить вне их — в базе, S3, кеше.

Итог

  • Auto Scaling Group автоматически меняет число серверов под нагрузку в рамках min–max.
  • Правила обычно завязаны на метрики CloudWatch (например, загрузку CPU).
  • Связка с ELB даёт масштабируемость и самовосстановление; всегда задавайте max и cooldown.
Проверьте себя
1. Зачем в Auto Scaling Group обязательно задавать параметр max?
AДля красоты
BЧтобы ограничить рост группы и не получить огромный счёт при сбое или атаке
CЧтобы ускорить сервера
DЭто необязательный параметр без эффекта
2. На основе чего обычно срабатывает масштабирование группы?
AНа основе цвета консоли
BНа основе метрик CloudWatch, например загрузки CPU
CНа основе имени бакета
DСлучайно