У меня разные задачи Fargate. Работают нормально. Затем у меня есть несколько дополнительных задач, которые требуют больше дискового пространства, чем позволяет старый глупый Fargate. Они должны работать на инстансах EC2, которые я назначил их соответствующему кластеру.
Я запускаю эти задачи с помощью событий cloudwatch.
Поскольку у меня так мало этих задач на базе EC2, кажется глупым держать эти экземпляры EC2 без дела.
Я думал создать / уничтожить экземпляры EC2 по запросу, возможно, используя Lambda.
Предлагаемая мной последовательность:
Возможно ли это? Есть ли шаблон или лучший способ сделать это? Возможно, функция Lambda не нужна, если есть способ запустить автоматическое масштабирование прямо из события cloudwatch?
Обратите внимание, что эти задачи не запланировано, поэтому это не вопрос планирования автомасштабирования
Используйте AWS Batch. Это служба, специально разработанная для вашей ситуации, и ее можно запускать с помощью CloudWatch Events.
Это должно работать нормально. Вы также можете увеличить желаемую емкость службы ECS одновременно с желаемой емкостью EC2 ASG для удаления ступени, если вы не запускаете автономные задачи. Служба ECS будет продолжать попытки запустить задачу, пока экземпляр не будет зарегистрирован в кластере.
Как узнать, когда нужно запустить задачу / экземпляр, что для этого послужит триггером? Как бы то ни было, вы можете использовать его для прямого запуска функции Lambada. Или, если это метрика CloudWatch, пропустите функцию CW Event и Lambda и получите сигнал CW, чтобы напрямую увеличить желаемую пропускную способность ASG и ECS (или, например, если инициирующим фактором является что-то в очереди SQS)