我在AWS中有一个自动缩放组,因此我可以更改CF创建的实例的堆栈大小。 但是,当我想减少堆栈时,它将终止堆栈中的随机实例。
我需要知道是否可以减少CF中的堆栈大小,但是使用扩展组将堆栈中的特定实例保留下来?
"WebServerScaleUpPolicy" : {
"Type" : "AWS::AutoScaling::ScalingPolicy",
"Properties" : {
"AdjustmentType" : "ChangeInCapacity",
"AutoScalingGroupName" : { "Ref" : "AutoScalingServerGroup" },
"Cooldown" : "60",
"ScalingAdjustment" : "1"
}
},
"WebServerScaleDownPolicy" : {
"Type" : "AWS::AutoScaling::ScalingPolicy",
"Properties" : {
"AdjustmentType" : "ChangeInCapacity",
"AutoScalingGroupName" : { "Ref" : "AutoScalingServerGroup" },
"Cooldown" : "60",
"ScalingAdjustment" : "-1"
}
}
感谢任何帮助。
答案 0 :(得分:2)
查看实例扩展保护,详见this AWS blog帖子。
我没有使用CloudFormation,因此我不确定它对Autoscaling自定义的支持程度,但this帖子有一个可能适合您的解决方法。
答案 1 :(得分:2)
查看Amazon EC2 Auto Scaling Lifecycle Hooks。正如您在下面看到的那样,可以通知实例Scale In事件,并准备终止或直接取消扩展事件。