ASG part 1 Flashcards
Scaling Policies для ASG
1) Dynamic Scaling
Policies (3 штуки)
2) Scheduled Scaling
Policy
3) Predictive Scaling
Policy
Dynamic Scaling Policies делятся на
1) Target Tracking Scaling
Policy
2) Simple Scaling
Policy
3) Step Scaling
Policy
Как устроена Predictive Scaling Policy?
Как устроена Scheduled Scaling Policy?
Predictive Scaling Policy
Machine Learning powered. Постоянный прогноз предстоящей нагрузки.
Scheduled Scaling
Увеличить min capacity до 10 единиц КАЖДУЮ ПЯТНИЦУ в 18:00
на основании заранее известных примитивных паттернов
Target Tracking Scaling Policy
Как задаётся условие?
Какие есть ограничения?
Условие
- Average ASG CPU
должно быть 40%
- Регулируй количество instance
’ов, чтобы соответствовать такому уровню утилизации
Ограничение
Scale OUT происходит, только если метрика ПРЕВЫШАЕТ threshold
Нельзя настроить Scale OUT на ПОНИЖЕННОЕ значение метрики
Simple Scaling Policy
Как задаётся условие?
Какие есть ограничения?
Условие
- Если CPU > 70%
, то CloudWatch Alarm → launch 10%
more instances
- Если CPU < 30%
, то CloudWatch Alarm → terminate 10%
of instances
Ограничение
При этом, после каждого Scaling Activity ожидать Cooldown Period
По-умолчанию Scaling Cooldown равняется 5 min
Ожидание Cooldown Period’а является проблемой
в случае РЕЗКОГО повышение трафика.
Step Scaling Policy
Как задаётся условие?
Какие есть ограничения?
Что такое “set of scaling adjustments”?
Это доработанная версия Simple Scaling
Policy.
Условия
- Если CPU > 70%
, то CloudWatch Alarm → launch 10%
more instances,
- а если CPU > 80%
, то CloudWatch Alarm → launch 30%
more instances
- Если CPU < 30%
, то CloudWatch Alarm → terminate 10%
of instances
- а если CPU < 20%
, то CloudWatch Alarm → terminate 30%
of instances
“set of scaling adjustments” подразумевает наличие НЕСКОЛЬКИХ условий, характерное только для Step Scaling Policy
Scaling Cooldown
Зачем нужен?
Какое значение по-умолчанию?
Как по-другому называется?
После каждого Scaling activity есть период времени на “перезарядку” (cooldown)
Смысл в том, чтобы стабилизировать значения метрик на основании новой численности ASG. И в это время пока НЕ запускать/терминировать никакие EC2
По-умолчанию Scaling Cooldown равняется 5 min
НИКАК по-другому НЕ называется
Deregistration Delay (он же Connection Draining) - это другая фича.
EC2 Instance Refresh - что за фича?
Какие у неё параметры?
EC2 Instance Refresh - это фича ASG, которая поочерёдно заменяет
Launch Template всем EC2 instanc’ам в группе
Параметры
- Minimum Healthy Percentage
(60%)
- Warm-up time
(сколько времени требуется EC2 instanc’у от запуска до полной готовности)
Termination Policies - что такое?
Какая выбрана по-умолчанию?
Какие вообще можно выбрать?
Как сочетать несколько?
Как создать свою?
Termination Policies определяют,
В КАКОМ ПОРЯДКЕ будут останавливаться EC2 instance’ы в ASG.
- Сначала выбирается
AZ
, в которой есть большеEC2 instance
’ов - Дальше останавливается
EC2 instance
с самым старымLaunch Configuration
’ом - Дальше останавливается
EC2 instance
с самым старымLaunch Template
’ом - Дальше останавливается
EC2 instance
с ближайшимbilling hour
Самый дешёвый/дорогой, самый старый/новый Launch Template/Configuration, самый старый/новый EC2
Можно выбрать несколько Termination Policies, указав приоритет выполнения
Можно создать кастомную Termination Policies через Lambda функцию
В каких случаях происходит терминирование instance’а?
ASG терминирует EC2 instance’ы в трёх случаях
- Scale In
- Instance Refresh
- AZ Rebalancing
Launch Template, Launch Configuration
Что более новое?
Чем оно лучше?
Как модифицировать?
EC2 Launch Template - это новый аналог старого Launch Configuration
EC2 Launch Template лучше, чем launch configuration
, потому что имеют в
- несколько версий template’ов
- разные instance types (on-demand
и spot
)
НЕВОЗМОЖНО модифицировать Launch Configuration
НЕВОЗМОЖНО модифицировать Launch Template (но можно создать несколько версий)
Чтобы внести изменения, то нужно создать новую Launch Configuration или создать новую Launch Template