【问题标题】:How can I configure an AWS autoscaling group/launch configuration with Terraform to only run a cron job on one EC2 instance?如何使用 Terraform 配置 AWS 自动缩放组/启动配置以仅在一个 EC2 实例上运行 cron 作业?
【发布时间】:2018-12-11 04:15:35
【问题描述】:

我正在为 AWS 系统构建一个 Terraform 配置,该系统需要自动缩放组中的一个实例来按每日节奏运行 cronjob。

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

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    如果您想在实例上使用 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 将替换它。如果您需要更多保护以防止同时运行多个代码副本,则需要在应用程序级别执行更复杂的操作(例如,获取分布式锁)。

    【讨论】:

    • 我的需求相当简单,而且效果很好。谢谢!
    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2018-01-29
    • 2020-01-15
    • 2020-07-31
    • 2019-04-04
    • 2021-11-10
    相关资源
    最近更新 更多