Автоскейлинг
Сервера сами появляются под нагрузкой и исчезают, когда она спадает.
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.