0Pricing
AWS Solutions Architect · Урок

Политики масштабирования: отслеживание цели и пошаговое масштабирование

Настройте отслеживание цели для поддержания заданного уровня использования CPU и пошаговое масштабирование для реакции на пороги аварий CloudWatch.

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

Зачем нужны политики масштабирования

Статическая желаемая ёмкость подходит при постоянной нагрузке, но в реальном мире трафик меняется. Политики масштабирования позволяют группе Auto Scaling автоматически изменять желаемую ёмкость в ответ на показатели. AWS предлагает три основных типа динамических политик: отслеживание цели, пошаговое масштабирование и простое масштабирование. Для экзамена SAA-C03 важнее всего понимать отслеживание цели и пошаговое масштабирование.

Как работает масштабирование с отслеживанием цели

Масштабирование с отслеживанием цели работает подобно термостату: Вы указываете показатель и целевое значение, а AWS автоматически вычисляет, сколько экземпляров добавить или удалить, чтобы поддерживать показатель на этом уровне. Например, если целевое значение средней загрузки CPU — 50%, а загрузка вырастет до 80%, ASG добавит достаточно экземпляров, чтобы вернуть загрузку CPU к 50%. AWS самостоятельно управляет увеличением и уменьшением ёмкости.

aws autoscaling put-scaling-policy \
  --auto-scaling-group-name 'MyAppASG' \
  --policy-name 'TargetTrackingCPU50' \
  --policy-type TargetTrackingScaling \
  --target-tracking-configuration '{
    "PredefinedMetricSpecification": {
      "PredefinedMetricType": "ASGAverageCPUUtilization"
    },
    "TargetValue": 50.0
  }'

Предопределённые и пользовательские показатели для отслеживания цели

Отслеживание цели изначально поддерживает несколько предопределённых показателей: ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut и специфичный для ALB показатель ALBRequestCountPerTarget. Для показателей эффективности приложения (глубина очереди, активные подключения, пользовательские бизнес-показатели) можно указать пользовательский показатель CloudWatch. Пользовательские показатели обеспечивают гораздо более точный контроль над тем, что определяет решения о масштабировании.

Период ожидания при отслеживании цели

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

Как работает пошаговое масштабирование

Пошаговое масштабирование реагирует на оповещения CloudWatch, добавляя или удаляя определённое количество экземпляров в зависимости от того, насколько показатель превышает порог. Вы задаёте несколько пошаговых изменений — каждый шаг охватывает диапазон показателя и задаёт изменение ёмкости. Например: при загрузке CPU 60–70% добавить 1 экземпляр; при 70–90% добавить 3 экземпляра; при превышении 90% добавить 5 экземпляров. Это обеспечивает постепенную пропорциональную реакцию на разные уровни нагрузки.

Создание политики пошагового масштабирования

Для пошагового масштабирования требуется заранее созданное оповещение CloudWatch. Оповещение отслеживает показатель и переходит в состояние ALARM при пересечении порога. Затем политика масштабирования использует пошаговые изменения, определяемые значением показателя относительно порога оповещения. Можно настроить тип изменения: ChangeInCapacity (добавить N), ExactCapacity (установить N) или PercentChangeInCapacity (изменить на N%).

# First create a CloudWatch alarm
aws cloudwatch put-metric-alarm \
  --alarm-name 'HighCPU' \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --statistic Average \
  --period 60 \
  --threshold 60 \
  --comparison-operator GreaterThanOrEqualToThreshold \
  --dimensions Name=AutoScalingGroupName,Value=MyAppASG \
  --evaluation-periods 2 \
  --alarm-actions 'arn:aws:autoscaling:us-east-1:123456789:scalingPolicy:...'

Настройка пошагового изменения

Каждое пошаговое изменение содержит MetricIntervalLowerBound и, при необходимости, MetricIntervalUpperBound. Границы отсчитываются относительно порога оповещения. Если порог оповещения составляет 60% загрузки CPU: LowerBound=0, UpperBound=10 срабатывает при загрузке CPU 60–70%; LowerBound=10, UpperBound=null срабатывает при загрузке CPU выше 70%. Такой многоуровневый подход гарантирует, что при резком скачке трафика ёмкость будет сразу значительно увеличена, а не после нескольких циклов оповещений.

# Step scaling policy with two steps
{
  'StepAdjustments': [
    {
      'MetricIntervalLowerBound': 0,
      'MetricIntervalUpperBound': 10,
      'ScalingAdjustment': 2
    },
    {
      'MetricIntervalLowerBound': 10,
      'ScalingAdjustment': 5
    }
  ],
  'AdjustmentType': 'ChangeInCapacity'
}

Простое масштабирование: устаревшая альтернатива

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

Защита от уменьшения и защита экземпляров

Иногда требуется предотвратить завершение работы определённых экземпляров при уменьшении ёмкости — например, экземпляра, выполняющего длительное пакетное задание. Можно включить защиту экземпляра от уменьшения ёмкости для отдельных экземпляров через консоль или CLI. Когда ASG выбирает кандидатов на завершение, она пропускает защищённые экземпляры. Не забудьте отключить защиту после завершения задания: иначе ASG может вообще не суметь уменьшить ёмкость, если защищены все экземпляры.

aws autoscaling set-instance-protection \
  --auto-scaling-group-name 'MyAppASG' \
  --instance-ids 'i-0abc123def456' \
  --protected-from-scale-in

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

К одной ASG можно подключить несколько политик масштабирования. Если одновременно существуют политика отслеживания цели и политика пошагового масштабирования, ASG использует ту, которая рекомендует большее увеличение ёмкости (то есть наиболее осторожную). При уменьшении ёмкости выигрывает политика, которая рекомендует удалить наименьшее количество экземпляров. Это не позволяет системе колебаться между избыточным и недостаточным выделением ресурсов. Распространённый подход — использовать отслеживание цели для обычного режима и пошаговое масштабирование для защиты от аварийных всплесков нагрузки.

Рекомендации по использованию политик масштабирования

Для большинства веб-приложений начните с отслеживания цели по загрузке CPU или количеству запросов на цель — это требует минимальной настройки, а вычисления выполняет AWS. Используйте пошаговое масштабирование, когда нужны постепенные пропорциональные реакции на нагрузку разной интенсивности. Всегда устанавливайте минимальную ёмкость, достаточную для обработки обычного трафика без увеличения ёмкости, поскольку масштабирование занимает время. Отслеживайте показатели CloudWatch GroupDesiredCapacity и GroupInServiceInstances, чтобы убедиться, что политики работают ожидаемым образом.

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

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

Итоги урока

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

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

Урок «Политики масштабирования: отслеживание цели и пошаговое масштабирование» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Политики масштабирования: отслеживание цели и пошаговое масштабирование»?

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

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

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

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

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