Amazon web services AWS自动缩放是否可能在计费小时边界之前从不终止实例?

Amazon web services AWS自动缩放是否可能在计费小时边界之前从不终止实例?,amazon-web-services,billing,autoscaling,Amazon Web Services,Billing,Autoscaling,由于AWS实例是按小时计费的,如果您可能再次需要,终止运行时间不到一小时的实例是没有意义的 我希望避免一种自动缩放的情况,即我添加一个实例,然后终止它,然后在同一个小时内添加另一个实例。这将导致两个计费小时 我已经编写了自己的autoscaler,它可以跳过任何运行时间少于55分钟的实例的终止,对于快速变化的负载,这为我们节省了很多费用。只是想知道AWS本身是否有这种能力。自动缩放不能“等待”到一个小时后终止实例。但是,还有一些选择需要探索 当触发指示自动缩放以进行缩放(删除Amazon EC2

由于AWS实例是按小时计费的,如果您可能再次需要,终止运行时间不到一小时的实例是没有意义的

我希望避免一种自动缩放的情况,即我添加一个实例,然后终止它,然后在同一个小时内添加另一个实例。这将导致两个计费小时


我已经编写了自己的autoscaler,它可以跳过任何运行时间少于55分钟的实例的终止,对于快速变化的负载,这为我们节省了很多费用。只是想知道AWS本身是否有这种能力。

自动缩放不能“等待”到一个小时后终止实例。但是,还有一些选择需要探索

当触发指示自动缩放以进行缩放(删除Amazon EC2实例)的缩放策略时,它首先选择实例最多的可用性区域,然后确定在该可用性区域内终止哪个实例。此选项由a进行选择,其值可以为:

  • oldesInstance:自动缩放将终止组中最早的实例。当您将“自动缩放”组中的实例升级为新的EC2实例类型,并希望最终用较旧的实例替换为较新的实例时,此选项非常有用
  • NewestInstance:自动缩放将终止组中的最新实例。当您测试新的启动配置但不想将其保留在生产环境中时,此策略非常有用
  • OldestLaunchConfiguration:自动缩放终止具有最早启动配置的实例。当您更新组并从以前的配置中逐步淘汰实例时,此策略非常有用
  • closesttonexistancehour:自动缩放终止最接近下一个计费小时的实例。此策略可帮助您最大限度地利用实例并管理成本
最后一个选项,closesttonexistancehour几乎就是您想要的,因为它将终止一个实例,该实例将导致每小时收费。然而,它不会“等待”到一小时结束

一种选择是编写自己的应用程序,确定何时在实例中进行扩展,等待实例提供其全部值。然后,应用程序可以调用删除并终止实例

另一种选择是,如果实例被用作“后端”(不直接处理web请求),则使用在实例从自动缩放组中移除但在其终止之前发送信号的。这通常用于为实例提供“完成”工作的机会,例如复制日志文件和完成任务。如果实例用于处理长时间运行的后台任务,则可以使用lifecycle钩子等待工作完成或计费时间即将结束,然后才允许终止实例


然而,所有这些都需要一些自定义脚本。开箱即用的自动缩放配置将立即终止实例以响应缩放策略(除非已生效)。

据我所知,它不支持此功能。最接近的方法可能是将终止策略设置为ClosestToneExistanceHour。这样,如果你有两个例子,一个是在下一个小时前5分钟,另一个是55分钟,前者会被杀死。参考:这里有更多信息,谢谢你的详细回答。我还想知道如何制作一个定制的Cloudwatch度量来触发中的scale。如果最接近下一个instancehour实例距离下一个小时的时间超过5-10分钟,则该自定义度量可以查看计时并返回“无需放大”。Amazon CloudWatch无法查看实例下一次计费之前的剩余时间。您必须将该信息“推送”到CloudWatch,这对您自己控制自动缩放没有任何好处。您始终可以在所需的时间执行一个缩放策略,该策略告诉自动缩放以进行缩放,但它无法控制终止哪个实例。