0Pricing
AWS Solutions Architect · Урок

Запланированное и прогнозируемое масштабирование

Заранее подготовьте ёмкость к известным всплескам трафика с помощью запланированных действий и автоматически прогнозируйте нагрузку с помощью прогнозируемого масштабирования.

«Запланированное и прогнозируемое масштабирование» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Ограничения реактивного масштабирования

Динамические политики масштабирования (отслеживание цели и пошаговое масштабирование) являются реактивными: они реагируют уже после превышения порога показателя. Для известных и предсказуемых схем трафика, таких как пики в рабочие часы, пакетные задания в конце месяца или распродажи в Чёрную пятницу, реактивное масштабирование слишком медленное, поскольку запуск и прогрев экземпляров занимают минуты. Плановое масштабирование и прогнозное масштабирование решают эту проблему, заранее изменяя ёмкость до поступления нагрузки.

Плановые действия масштабирования

Плановое действие масштабирования изменяет минимальную, максимальную или желаемую ёмкость ASG в определённые дату и время либо по повторяющемуся расписанию cron. Это идеально подходит, когда Вы точно знаете, когда возрастёт нагрузка, — например, для предварительного прогрева перед запланированным маркетинговым мероприятием или для уменьшения ёмкости ночью, когда трафик минимален, чтобы снизить расходы. В указанное время плановые действия переопределяют текущую желаемую ёмкость.

aws autoscaling put-scheduled-update-group-action \
  --auto-scaling-group-name 'MyAppASG' \
  --scheduled-action-name 'MorningScaleUp' \
  --recurrence '0 7 * * MON-FRI' \
  --min-size 4 \
  --desired-capacity 8 \
  --max-size 20

Синтаксис cron для повторяющихся действий

Запланированные действия используют формат Unix cron: minute hour day-of-month month day-of-week. Все времена указаны в UTC. Распространённые шаблоны включают 0 8 * * 1-5 (по будним дням утром в 08:00 UTC) для увеличения масштаба и 0 20 * * * (каждую ночь в 20:00 UTC) для уменьшения масштаба. В одной ASG можно создать несколько запланированных действий, например одно для увеличения масштаба и одно для его уменьшения каждый день.

# Scale down every night at 22:00 UTC
aws autoscaling put-scheduled-update-group-action \
  --auto-scaling-group-name 'MyAppASG' \
  --scheduled-action-name 'NightScaleDown' \
  --recurrence '0 22 * * *' \
  --min-size 2 \
  --desired-capacity 2 \
  --max-size 20

Однократные и повторяющиеся запланированные действия

Запланированные действия могут быть однократными (выполняются один раз в определённое время начала) или повторяющимися (выполняются по расписанию cron). Однократное действие отлично подходит для известного события в будущем, например запуска продукта. Повторяющееся действие обрабатывает регулярные закономерности, например ежедневные или еженедельные циклы трафика. Для повторяющегося действия также можно задать время начала и время окончания, чтобы автоматически включать и отключать расписание в пределах заданного диапазона дат.

# One-time scale-up for a product launch event
aws autoscaling put-scheduled-update-group-action \
  --auto-scaling-group-name 'MyAppASG' \
  --scheduled-action-name 'ProductLaunchScaleUp' \
  --start-time '2026-07-15T14:00:00Z' \
  --min-size 10 \
  --desired-capacity 20 \
  --max-size 50

Взаимодействие с динамическими политиками

Запланированные действия и политики динамического масштабирования могут работать совместно. В запланированное время действие задаёт новую базовую ёмкость. После этого динамические политики (отслеживание целевого показателя или ступенчатое масштабирование) продолжают изменять ёмкость в обновлённых минимальных и максимальных пределах. Например, утреннее запланированное действие задаёт min=4 и desired=8; в течение дня отслеживание целевого показателя увеличивает масштаб до 15 при росте нагрузки; затем вечернее действие снова устанавливает min=2 и desired=2.

Введение в прогнозирующее масштабирование

Прогнозирующее масштабирование использует машинное обучение для анализа исторических закономерностей нагрузки по метрикам CloudWatch и прогнозирования будущих потребностей в ёмкости. Оно заранее планирует действия по увеличению масштаба до появления прогнозируемой нагрузки — обычно за 5–60 минут. Прогнозирующее масштабирование лучше всего подходит для рабочих нагрузок с повторяющимися ежедневными или еженедельными циклами трафика. По мере сбора новых данных оно непрерывно обновляет прогноз.

Включение прогнозирующего масштабирования

Чтобы включить прогнозирующее масштабирование, добавьте к своей ASG политику PredictiveScaling. Укажите пару метрик: метрику нагрузки (что определяет масштабирование, например CPU или количество запросов ALB) и метрику масштабирования (что отслеживается на каждом экземпляре). Затем AWS прогнозирует метрику нагрузки и вычисляет количество экземпляров, необходимое для поддержания метрики масштабирования на заданном целевом значении.

aws autoscaling put-scaling-policy \
  --auto-scaling-group-name 'MyAppASG' \
  --policy-name 'PredictiveScalingPolicy' \
  --policy-type PredictiveScaling \
  --predictive-scaling-configuration '{
    'MetricSpecifications': [{
      'TargetValue': 40.0,
      'PredefinedMetricPairSpecification': {
        'PredefinedMetricPairType': 'ASGCPUUtilization'
      }
    }],
    'Mode': 'ForecastAndScale'
  }'

Режимы прогнозирующего масштабирования

У Predictive Scaling есть два режима: ForecastOnly создаёт прогнозы, не изменяя фактическую ёмкость, — это удобно для проверки прогнозов перед переходом к автоматическому масштабированию. ForecastAndScale создаёт прогнозы и автоматически применяет изменения ёмкости. Начните с ForecastOnly на несколько недель, чтобы проверить точность, а затем переключитесь на ForecastAndScale. Перед созданием первого прогноза AWS требует данные метрик как минимум за 24 часа.

Время предварительного запуска и буфер максимальной ёмкости

Прогнозирующее масштабирование заранее выполняет действия по увеличению масштаба, но можно настроить SchedulingBufferTime, чтобы запускать предварительную подготовку экземпляров ещё раньше. Значение SchedulingBufferTime, равное 5 минутам, означает, что ёмкость будет добавлена за 5 минут до прогнозируемого момента необходимости. Также можно задать MaxCapacityBuffer, чтобы разрешить ASG увеличивать масштаб сверх прогнозируемой потребности на определённый процент и создать запас на случай неточности прогноза.

Сочетание прогнозирующего масштабирования и отслеживания целевого показателя

Рекомендуемый подход для изменчивых, но предсказуемых рабочих нагрузок — сочетать оба механизма: прогнозирующее масштабирование обрабатывает ожидаемую циклическую нагрузку, заранее размещая необходимую ёмкость, а масштабирование с отслеживанием целевого показателя обрабатывает неожиданные пики, превышающие прогноз. Вместе они обеспечивают проактивное и реактивное покрытие. ASG безопасно применяет наиболее консервативную рекомендацию по увеличению масштаба из двух политик.

Когда выбирать каждый тип масштабирования

Используйте масштабирование по расписанию, когда пики трафика полностью предсказуемы и известны точные моменты их возникновения (например, при событиях или в рабочие часы). Используйте прогнозирующее масштабирование, когда закономерности повторяются, но точное время может меняться: машинное обучение автоматически изучает закономерность. Используйте отслеживание целевого показателя как постоянно работающий динамический механизм защиты от неожиданной нагрузки. При полностью случайной нагрузке достаточно использовать только отслеживание целевого показателя или ступенчатое масштабирование. На экзамене SAA-C03 часто требуется выбрать наиболее эффективный с операционной точки зрения подход, и для повторяющихся циклических рабочих нагрузок выигрывает прогнозирующее масштабирование.

Быстрая проверка

Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что масштабирование по расписанию использует выражения cron для изменения ёмкости ASG в известные моменты и идеально подходит для предсказуемых событий или повторяющихся периодов рабочего времени; прогнозирующее масштабирование применяет машинное обучение к историческим данным CloudWatch, чтобы заранее увеличить масштаб до появления нагрузки; а сочетание прогнозирующего масштабирования и отслеживания целевого показателя обеспечивает проактивное и реактивное покрытие для наиболее устойчивой стратегии масштабирования. Далее мы рассмотрим обновление экземпляров и перехватчики жизненного цикла для контролируемого развёртывания.

Часто задаваемые вопросы

Урок «Запланированное и прогнозируемое масштабирование» бесплатный?

Да — полный текст урока «Запланированное и прогнозируемое масштабирование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «Запланированное и прогнозируемое масштабирование»?

Заранее подготовьте ёмкость к известным всплескам трафика с помощью запланированных действий и автоматически прогнозируйте нагрузку с помощью прогнозируемого масштабирования. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Запланированное и прогнозируемое масштабирование»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Шаблоны запуска и настройка ASG
  2. Политики масштабирования: отслеживание цели и пошаговое масштабирование
  3. Запланированное и прогнозируемое масштабирование
  4. Обновление экземпляров и перехватчики жизненного цикла
← Назад к AWS Solutions Architect