我已经创建了一个自动扩展目标和附加的策略。
AutoScalingPolicy:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: !Join ['', [!Ref ServiceName, auto-scaling-policy]]
PolicyType: TargetTrackingScaling
ScalingTargetId: !Ref AutoScalingTarget
TargetTrackingScalingPolicyConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ECSServiceAverageCPUUtilization
ScaleInCooldown: 10
ScaleOutCooldown: 10
# Keep things at or lower than 50% CPU utilization, for example
TargetValue: !Ref AutoScalingTargetValue
这将创建cloudwatch警报为:
高:3 datapoints within 3 minutes
低:15 datapoints within 15 minutes
我想对此进行自定义:
高:1 datapoint within 1 minute
低:1 datapoint within 1 minute
我能够从AWS控制台手动执行此操作。但是,努力寻找一种使用cloudformation模板执行此操作的方法。
答案 0 :(得分:1)
目标跟踪实际上没有“高”和“低”阈值。通过目标跟踪,您可以设置要尝试保持的目标CPU利用率百分比值,然后自动缩放会自动上下更新任务数,以尝试将CPU利用率保持在该值。
如果您希望获得更精细的控制,则需要使用“逐步扩展策略”。这允许您设置特定的值,例如“如果CPU百分比超出目标50%的0%至10%,然后增加1”,以及“如果CPU百分比超出目标50%的10%至20%,然后增加2”。
您可以在以下可下载的开放源代码CloudFormation模板中看到这种逐步扩展策略的示例:https://containersonaws.com/architecture/autoscaling-service-containers/太久不能直接包含在此答案中,但是您可以将这些官方AWS示例模板用作逐步扩展策略的起点。
答案 1 :(得分:0)
尽管目标跟踪允许您指定一个值,但在CloudWatch的掩盖下会变成两个警报。 High
警报将为YourMetric > YourTargetValue for X datapoints for Y minutes
。 Low
警报将为YourMetric < SomeValue for A datapoints for B minutes
。