我创建了一个自动缩放目标和一个附加到它的策略。
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
这将创建云观察警报:
高:3 datapoints within 3 minutes
低:15 datapoints within 15 minutes
我想自定义这个:
高:1 datapoint within 1 minute
低:1 datapoint within 1 minute
我可以从AWS控制台手动执行此操作。但是,努力寻找使用cloudformation模板做同样的方法。
目标跟踪实际上没有“高”和“低”阈值。使用目标跟踪,您可以设置要尝试保持的目标CPU利用率百分比值,并且自动调整会自动更新数字任务,以尝试将CPU利用率保持在该值。
如果您想要更细粒度的控制,则需要使用“步长缩放策略”。这允许您设置特定值,例如“如果CPU百分比在我的目标50%和10%之间,然后增加1”,并且“如果CPU百分比在我的目标50%之间的10%到20%之间,那么增加按2“。
您可以在可下载的开源CloudFormation模板中查看此类步骤扩展策略的示例:https://containersonaws.com/architecture/autoscaling-service-containers/在此答案中直接包含这些内容,但您可以使用这些官方AWS示例模板作为步骤缩放的起点政策。