![](/img/trans.png)
[英]How can I get the count of server instances running under my Amazon EC2 account using API
[英]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.