首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS自动标度:如何杀死那些不忙的机器

AWS自动标度:如何杀死那些不忙的机器
EN

Server Fault用户
提问于 2019-01-28 13:42:33
回答 1查看 1K关注 0票数 1

我们有一个自动标度组,它生成工作服务器。每个工作服务器运行芹菜进程。我们使用cloudwatch监视芹菜队列长度,根据队列长度,我们生成/杀死自动缩放服务器。你在这个答案中看到的是我们是如何做到的:是否有一种方法可以使用芹菜使用的RabbitMQ队列长度来启动自动规模组中的实例?

我们的终止策略是先杀死最老的服务器。当队列长度连续300秒为零时,就会发生这种情况。

正常设置有3台始终可用的服务器。只有当队列长度超过某个数目时,自动标度组才会进入。假设有10个作业在队列中持续30秒。

我还没有在我的芹菜配置中设置任何路由或优先级。

这就是问题所在。当规模缩小时,我不完全确定被杀害的宿主是否是免费的,因为所有的工人都受到平等对待。任务有时需要5-10分钟,如果服务器处于执行任务的过程中,我不希望服务器被杀死。

到目前为止,我还没有遇到任何问题。但我担心我们的一些客户会因此而面临一个问题。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-01-28 21:44:13

当实例处于“终止:等待”状态时,可以使用生命周期事件执行自定义操作。

按照此页上的步骤创建一个生命周期挂钩,如下所示。在这种状态下,脚本或Lambda可以将实例保持为打开状态,直到完成所有作业为止。我链接到的页面有关于冷却时间的其他信息。

自动缩放组通过启动实例来响应扩展事件,并通过终止实例来扩展事件。生命周期钩子将实例置于等待状态(挂起:等待或终止:等待)。实例将暂停,直到您继续或超时期间结束。您可以使用以下一个或多个选项执行自定义操作:定义一个CloudWatch事件目标,以便在发生生命周期操作时调用Lambda函数。当Amazon自动缩放向EC2事件提交生命周期操作的事件时,将调用Lambda函数。该事件包含有关正在启动或终止的实例的信息,以及可用于控制生命周期操作的令牌。为生命周期挂钩定义通知目标。亚马逊EC2自动缩放会向通知目标发送消息。该消息包含有关正在启动或终止的实例的信息,以及可用于控制生命周期操作的令牌。创建在实例启动时在实例上运行的脚本。脚本可以使用运行它的实例的ID来控制生命周期操作。默认情况下,实例处于等待状态一个小时,然后自动缩放组继续启动或终止进程(待定:继续或终止:继续)。如果需要更多的时间,可以通过记录心跳来重新启动超时时间。如果在超时期间结束之前完成,则可以完成生命周期操作,该操作将继续启动或终止过程。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/951118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档