Кратко:
- Автоматическое масштабирование важно для работы веб-сервиса при пиковой посещаемости.
- Настройка автоматического масштабирования группы ВМ позволяет системе отслеживать потребность в ВМ и экономить ресурсы.
- Создание группы ВМ, выбор метрик для отслеживания и целевого значения метрики.
- Период стабилизации, время на разогрев ВМ и промежуток измерения нагрузки влияют на регулирование количества ВМ в группе.
- Возможность установки пользовательских метрик, таких как среднее время ответа сервиса, для автоматического масштабирования.
Автоматическое масштабирование
Вы разработали и запустили веб-сервис, дали к нему ранний доступ парочке популярных блогеров и со дня на день ждёте наплыва посетителей. Теперь надо сделать так, чтобы сервис продолжил работать при пиковой посещаемости как ни в чём не бывало.
Для этого настройте автоматическое масштабирование группы ВМ. Система сама будет отслеживать потребность в ВМ и добавлять их, а при снижении нагрузки — убирать лишние, чтобы экономить ресурсы и деньги.
Вот как это работает:
- Создайте группу ВМ.
- Укажите, какие метрики системе отслеживать, чтобы вовремя добавлять или убирать ВМ. Обычно это нагрузка CPU: при загруженном на 100% процессоре сервис попросту перестаёт отзываться на действия посетителей. Вы можете использовать и свои метрики (например время ответа сервиса).
- Укажите целевое значение метрики. Например загрузка CPU — в среднем не больше 50%.
Однако нагрузка на ресурсы бывает неравномерной. Например, ваш сервис мониторинга репутации в соцсетях хранит копии публикаций в микроблогах, на форумах, сайтах с отзывами и т. д. Пользователи часто будут делать выгрузки для отчётности, что подразумевает запросы по очень большому диапазону записей в очень большой базе данных. Поэтому среднее значение метрики может резко меняться.
Но если после каждого всплеска и спада нагрузки создавать и удалять ВМ — это тоже приведёт к расходу ресурсов. Поэтому количество ВМ регулируется при помощи следующих параметров.
- Период стабилизации — время, в течение которого количество ВМ в группе не может быть уменьшено, даже если средние значения метрик становятся достаточно низкими. Его отсчёт начинается с момента принятия сервисом последнего из решений об увеличении размера группы. Смысл в том, что если в течение этого периода произойдёт повторный всплеск нагрузки, то в группе уже будет доступна хотя бы ещё одна дополнительная ВМ, которая перехватит часть запросов.
- Время на разогрев ВМ — период времени после запуска ВМ, в течение которого значения метрик этой ВМ, связанных с потреблением ресурсов, будут игнорироваться, а вместо них будут использоваться средние значения метрик в группе. Это позволяет не учитывать рост нагрузки, обусловленный запуском самой ВМ.
- Промежуток измерения нагрузки — период времени для усреднения значений измеряемых метрик. Сервис измеряет значения метрик с частотой несколько раз в минуту. Но принимать решение об изменении размера группы на основании только одного полученного значения не имеет смысла — например, нагрузка CPU может резко вырасти до 100%, а затем упасть до 10% в течение буквально пары секунд. Соответственно, чтобы регулировка количества ВМ в группе не была слишком чувствительной, используются усреднённые показатели.
Вы также можете установить в Yandex Monitoring пользовательские метрики. Например, среднее время ответа сервиса. Укажите имя метрики и ее целевое значение. Если оно будет превышено, Instance Groups создаст дополнительные машины для распределения нагрузки.