【发布时间】:2021-08-01 06:13:10
【问题描述】:
我正在探索使用目标跟踪和自定义指标进行 AWS EC2 自动扩展。从文档中我了解到,当某个特定目标被击中时,会触发一个自动缩放事件,该事件可以缩小或缩小 EC2 实例。
我按照 terraform 文档为 aws_autoscaling_policy 提供的说明进行操作,并且正在工作,但这只是一个实例的缩放。
现在,对于我的用例,我想缩小和缩小两个实例。有没有办法通过目标跟踪扩展策略来做到这一点?
任何帮助,非常感谢。
以下是用 terraform 编写的工作策略,用于使用自定义指标进行目标跟踪。
resource "aws_autoscaling_policy" "target-tracking-autoscale" {
name = "target-traclking-policy"
autoscaling_group_name = "target-tracking-asg"
policy_type = "TargetTrackingScaling"
target_tracking_configuration {
customized_metric_specification {
metric_dimension {
name = "asg"
value = "custom-value"
}
metric_name = "CUSTOM_METRIC"
namespace = "CUSTOM-METRIC/NAMESPACE"
statistic = "Average"
}
target_value = "2"
}
}
问候。
更新 1
我已尝试添加step_adjustment,但此参数专门用于步进缩放。 Terraform 抛出以下错误:
Error: Error applying plan:
1 error(s) occurred:
* module.pt-wowza.aws_autoscaling_policy.target-tracking-autoscale: 1 error(s) occurred:
* aws_autoscaling_policy.target-tracking-autoscale: step_adjustment is only supported for policy type StepScaling
Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.
【问题讨论】:
-
你能展示你的 terraform 脚本的相关部分吗?也许只是添加
scaling_adjustment的情况? -
@James Thorpe :是的,我尝试将 scaling_adjustment 添加到 aws_autoscaling_policy 但 scaling_adjustment 仅允许用于 StepScaling 策略。 Terraform 引发错误。用错误更新了问题。
-
为什么要使用目标跟踪而不是步进缩放调整?目标跟踪是说尝试让我的服务扩大规模,以便将指标降低到这个值。因此,这可能是针对整个服务 75% 的平均 CPU 使用率,添加任务直到它低于这个值,然后删除它们直到它达到这个值。告诉它一次添加 2 个任务在这里没有意义。
-
@ydaetskcoR:这正是我想做的。我想将自定义指标的总体平均值保持在 2。现在我需要扩大和缩小 2 个实例,因为一个将充当主实例,另一个充当从属实例。
-
如果您解释一下您正在使用的指标以及您的应用程序正在做什么,这可能会更好,因为如果不了解您在做什么,这似乎会令人困惑。
标签: amazon-web-services amazon-ec2 terraform