Как обновить минимальное и максимальное количество запущенных задач в ECS

Я хочу обновить минимальное и максимальное количество задач для службы в ECS в лямбда-функции (python с boto3). Похоже, самым близким является желаемый счет: desiredCount, но я не думаю, что это то, что я после того, как моя политика автоматического масштабирования все равно изменит это.

Еще немного о моем случае использования.

У меня есть некоторые контейнеры в ECS, которые опрашивают очередь на выполнение заданий, и у меня есть некоторое количество таких, которые всегда работают в рабочее время, но тогда ни у одного из них не заканчивается рабочее время. Когда нагрузка поступает в систему, моя политика автоматического масштабирования будет масштабировать контейнеры, но пользователю придется ждать дольше, чтобы это произошло, когда контейнеров нет, поэтому я хочу, чтобы некоторые всегда были включены в рабочее время.

Я также использую AWS Fargate.

1 ответ

Решение

Я полагаю, вам придется сделать это в 2 шага, используя автоматическое масштабирование приложения клиента boto3:

  1. Создайте службу ECS в качестве цели автоматического масштабирования приложения с register_scalable_target() например MinCapacity=3 а также MaxCapacity=100, Этот вызов вернет масштабируемый targer ARN.

  2. Каждый вечер звонок register_scalable_target() снова с MinCapacity=0 и каждый рабочий день утром снова с MinCapacity=3,

Увидеть register_scalable_target() документация, где прямо говорится:

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

Ваша политика автоматического масштабирования будет установлена DesiredCapacity в пределах границ Min/MaxCapacity, где MinCapacity изменится с 0 в 3 в рабочее время и обратно 0 после часа

Надеюсь, это поможет:)

Другие вопросы по тегам