AWS 控制在自动缩放时缩减哪个实例
AWS controlling which instance is scaled-in when autoscaling
我想要一个缩减策略,当 CPU 低于 30% 时节点会缩减。
如何控制选择用于缩减的单个实例是具有最低 CPU 或至少 CPU 低于 30% 的实例?
默认情况下,Auto Scaling 首先识别哪个 Availability 区域拥有最多的实例(或者,如果它们相等,它会选择一个随机 AZ)。然后,它使用 终止策略 来确定哪个实例 control which instance Auto Scaling terminates during scale-in。
但是,Auto Scaling 不会 select 一个基于 'busy' 特定情况的实例 -- 毕竟,该实例可能会在几秒钟后更忙或更不忙。
幸运的是,Auto Scaling 使用 connection draining 允许 进行中的请求 在实例终止之前完成。所以理论上,实例暂时忙是没有关系的。
如果您不想中断某个实例上的长期 运行 任务,您可以配置 Auto Scaling Lifecycle Hooks 将实例移至 Terminating:Wait
状态。这些实例将不会收到任何新流量。然后,您的应用程序可以 在 运行 长任务完成时发出信号 (例如,将日志文件复制到 S3,或完成视频渲染),然后 Auto Scaling 将终止实例。
最后,如果您想要更多细粒度控制 终止哪个实例,您(或您的应用程序)可以通过管理控制台明确 Detach EC2 Instances From Your Auto Scaling Group 或者describe-auto-scaling-instances
API 电话。
我想要一个缩减策略,当 CPU 低于 30% 时节点会缩减。
如何控制选择用于缩减的单个实例是具有最低 CPU 或至少 CPU 低于 30% 的实例?
默认情况下,Auto Scaling 首先识别哪个 Availability 区域拥有最多的实例(或者,如果它们相等,它会选择一个随机 AZ)。然后,它使用 终止策略 来确定哪个实例 control which instance Auto Scaling terminates during scale-in。
但是,Auto Scaling 不会 select 一个基于 'busy' 特定情况的实例 -- 毕竟,该实例可能会在几秒钟后更忙或更不忙。
幸运的是,Auto Scaling 使用 connection draining 允许 进行中的请求 在实例终止之前完成。所以理论上,实例暂时忙是没有关系的。
如果您不想中断某个实例上的长期 运行 任务,您可以配置 Auto Scaling Lifecycle Hooks 将实例移至 Terminating:Wait
状态。这些实例将不会收到任何新流量。然后,您的应用程序可以 在 运行 长任务完成时发出信号 (例如,将日志文件复制到 S3,或完成视频渲染),然后 Auto Scaling 将终止实例。
最后,如果您想要更多细粒度控制 终止哪个实例,您(或您的应用程序)可以通过管理控制台明确 Detach EC2 Instances From Your Auto Scaling Group 或者describe-auto-scaling-instances
API 电话。