Как настроить конфигурацию группы/запуска автомасштабирования AWS с помощью Terraform для запуска задания cron только на одном экземпляре EC2?

Я создаю конфигурацию Terraform для системы AWS, которой требуется ровно один экземпляр в группе автоматического масштабирования для ежедневного запуска cronjob.

Можно ли выразить это в HCL с провайдером AWS? Каковы «лучшие практические» советы от сообщества? Я бы предпочел не использовать пакетные вычисления, так как для этого требуется ECS.

Спасибо заранее.


person Allen Gooch    schedule 02.07.2018    source источник


Ответы (1)


Если вы хотите использовать cron для экземпляра, вы можете создать автомасштабирование для одного экземпляра, установив для max_size, min_size и требуемой_емкости значение 1 следующим образом:

resource "aws_autoscaling_group" "foo" {
  name             = "foo"
  max_size         = 1
  min_size         = 1
  desired_capacity = 1
# Other params...
}

Если вы когда-нибудь захотите заменить экземпляр, вы можете установить для него статус «Неработоспособный», и ASG заменит его. Если вам нужна дополнительная защита от запуска нескольких копий вашего кода одновременно, вам нужно будет сделать что-то более сложное на уровне приложения (например, получение распределенной блокировки).

person Eric M. Johnson    schedule 02.07.2018
comment
Мои потребности довольно просты, и это работает отлично. Спасибо! - person Allen Gooch; 05.07.2018