Auto scaling #
Когда приложение начинает внезапно «стрелять» по трафику, вручную подкручивать количество серверов — так себе удовольствие. Для этого и придуман auto scaling: система сама добавляет или убирает ресурсы в зависимости от нагрузки.
Суть механизма #
Идея простая: пока нагрузки мало — работает минимальный набор виртуальных машин. Пошел пик, пользователи навалились, CPU забились под завязку — автоматика поднимает дополнительные экземпляры. Трафик упал — лишние инстансы потихоньку выключаются, и вы не платите за простаивающее железо.
Auto scaling group #
Обычно это оформлено как группа — auto scaling group. В нее входят виртуальные машины или контейнеры, которыми управляет механизм масштабирования. Вы задаёте правила: при какой загрузке процессора, каком количестве запросов или каком уровне сетевого трафика нужно добавлять или убирать инстансы. Дальше система просто следит за метриками и крутит «ручку громкости» сама.
Такой подход отлично вписывается в облака вроде крупных публичных провайдеров, где ресурсы поднимаются и уничтожаются по требованию. В итоге получается:
- сервисы не падают при резких всплесках (распродажи, акции, вирусный трафик и всё в этом духе);
- экономия бюджета — нет нужды держать парк серверов «на всякий случай» круглосуточно;
- повышенная отказоустойчивость: если один инстанс умирает, его просто заменяет новый.
На практике auto scaling становится чем-то вроде «страховки» для живых проектов: система адаптируется к нагрузке сама, без ночных дежурств админов с руками на кнопке.
