如何将AWS SQS与点实例EC2工人和长期运行作业的自动缩放一起使用



让我解释一下。。。

我有2个SQS队列,它们接收执行lightheavy报告生成作业的请求。(为了不受重型作业的影响,引入了两个队列的分离。)

SQS在自动扩展组中发送作业,该组包含3名工人

工人是按需EC2实例。我想更改启动配置并使用点实例

问题是,一些产生报告的繁重工作可能长达4个小时。因此,如果这种工作在可能被终止的现场实例工作者上运行,则会出现额外的延迟和/或复杂情况。

我想使用spot实例作为工作者,但也要保证如果有作业在上面运行,工作者不会被终止。

我想出的方法如下:

1.以实例的按需价格竞标现货实例[它仍然不能防止终止,但将可能性降至最低]

2.使用特定周期的spot实例[例如6小时],但我仍然被限制在6小时内,实例终止。另外,我不知道我是否可以从启动配置中设置这种设置

我想使用spot实例作为工作者,但也要确保如果有作业在其上运行,工作者不会被终止。

您似乎明白这不是点实例工作的方式

他们是你的,直到价格超过出价

6小时的事情("定义的持续时间")在某些情况下可能会有所帮助,我想

脑海中浮现出两个想法

  • 尝试在"长"队列中估计作业开始前的长度。然后选择最便宜的选项来运行

  • 为您的工作实现事务系统。例如,当一个作业被提取时,SQS将时间/instanceid/job id添加到另一个持久化系统,即数据库表。然后每隔几分钟对表进行一次轮询,检查instanceid是否仍然存在。当作业最终成功完成时,让作业运行器将其从数据库表中删除。如果轮询注意到实例已消失,则将作业重新提交给SQS

相关内容

  • 没有找到相关文章

最新更新