如何使用Terraform配置AWS自动伸缩组/启动配置,使其仅在一个EC2实例上运行cron作业?

时间:2018-07-02 22:49:31

标签: amazon-web-services amazon-ec2 terraform terraform-provider-aws

我正在为一个AWS系统构建Terraform配置,该配置需要自动伸缩组中的一个实例每天运行一次cronjob。

是否可以通过AWS提供商在HCL中表达这一点?社区的“最佳实践”建议是什么?我宁愿不使用批处理计算,因为这需要ECS。

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果要在实例上使用cron,可以通过将max_size,min_size和desired_capacity全部设置为1来创建单实例自动缩放,如下所示:

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

如果要替换该实例,可以将其状态设置为“不正常”,ASG将替换它。如果需要更多保护以免一次运行多个代码副本,则需要在应用程序级别执行更复杂的操作(例如,获取分布式锁)。