繁体   English   中英

如何控制使用Amazon Web Services通过AutoScalingGroup删除哪些EC2实例?

[英]How can I control which EC2 instances get removed by an AutoScalingGroup using Amazon Web Services?

我已经预见到应用程序可能会出现一个问题,但是我不确定是否可以解决,也许架构需要重新设计。

我在AWS上使用AutoScalingGroup(ASG)创建EC2实例,该实例托管玩家可以加入的游戏服务器。 目前,ASG是通过配对API手动缩放的,该API会根据其需求更改所需的容量。 游戏服务器完成时,会出现此问题。

游戏结束时,它会向媒人发出信号,告知其已完成并需要终止,媒人随后将相应地缩减ASG,但是,它似乎并不确切知道要删除哪个实例,因此不一定是需要终止的那个。

我可以终止该实例,但是由于终止该实例时ASG所需的容量从未更改,因此将创建另一个服务器。

有什么办法可以缩小ASG的规模,并指定要从组中删除的服务器?

简而言之,在扩展过程中的默认终止策略旨在删除使用最旧启动配置的实例。

当前,Amazon EC2 Auto Scaling支持以下终止策略:

OldestInstance终止组中最旧的实例。 将Auto Scaling组中的实例升级到新的EC2实例类型时,此选项很有用。 您可以逐渐用新类型的实例替换旧类型的实例。

NewestInstance终止组中的最新实例。 当您测试新的启动配置但不想将其保留在生产环境中时,此策略很有用。

OldestLaunchConfiguration终止具有最早启动配置的实例。 当您更新组并从以前的配置中逐步淘汰实例时,此策略很有用。

ClosestToNextInstanceHour终止最接近下一个计费时间的实例。 此策略可帮助您最大限度地利用实例并管理Amazon EC2的使用成本。

默认根据默认终止策略终止实例。 当组具有多个扩展策略时,此策略很有用。

实例保护

一种可能的解决方案是使用实例保护 自动扩展可提供实例保护,以控制扩展时实例是否可以终止。

因此,请为ASG启用实例保护以默认情况下防止实例放大。 完成服务器处理后,减少所需实例数的值,从特定实例中删除实例保护(使用CLI或SDK;请注意,其余实例仍启用该保护),并且自动缩放将终止该实例保护实例。

有关实例保护的更多信息,请参阅实例保护。

最旧的服务器被删除。 如果要缩减特定服务器的规模,则必须先终止该服务器,然后再更改所需的容量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM