假设我有一个通过terraform管理的自动缩放组。我希望这个自动扩展小组根据我们的工作时间来扩大和缩小规模。
管理ASG的TF模板:
resource "aws_autoscaling_group" "foobar" {
availability_zones = ["us-west-2a"]
name = "terraform-test-foobar5"
max_size = 1
min_size = 1
health_check_grace_period = 300
health_check_type = "ELB"
force_delete = true
termination_policies = ["OldestInstance"]
}
resource "aws_autoscaling_schedule" "foobar" {
scheduled_action_name = "foobar"
min_size = 0
max_size = 1
desired_capacity = 0
start_time = "2016-12-11T18:00:00Z"
end_time = "2016-12-12T06:00:00Z"
autoscaling_group_name = aws_autoscaling_group.foobar.name
}
正如我们在这里看到的,我必须为行动设定一个特定的日期和时间。
我想要的是:我想在周六晚上9点缩减我目前容量的10%,然后在周一早上6点再次缩减10%。
我怎样才能做到这一点。
非常感谢您的帮助。请让我知道如何度过难关。
该解决方案并不简单,但可行。所需步骤为:
- 创建一个Lambda函数,以缩小ASG(例如,使用Boto3和Python(
- 分配具有正确权限的IAM角色
- 创建Cron触发器;每周六晚上9点";带
aws_cloudwatch_event_rule
- 使用之前创建的Cron触发器和Lambda函数创建
aws_cloudwatch_event_target
- 重复放大
这个模块可能会满足您的需求,您只需要对Lambda进行编码,并使用该模块按计划触发它。