为短期工作负载添加竞价型 EC2 实例的建议



我有一个 php/Laravel 应用程序部署到 AWS t2.small EC2 机器上,作为我的 Web 服务器。 一天中98%的时间,这台小机器都可以很好地提供HTTP和mySQL工作负载。 但是,我需要每天运行大约一个小时的大量处理/批处理/计算作业,并且正在探索如何利用亚马逊的现货定价来每天为这些日常工作负载启动服务器。

我的应用程序使用队列来触发不同的作业,我希望我可以使用 AWS 开发工具包自动发出 spot 请求,然后将其添加到集群以完成队列处理。

我只是有点不确定实现这一目标的过程,并想我会向这个社区询问任何指示或教程,以显示如何使用 Spot 实例进行这种短期工作负载处理?

提前感谢您的任何指示或建议!

如果您的"大量处理/批处理/计算"作业可以中断,那么竞价型实例可能对您有好处。 但是,如果此作业必须在第二天之前完成并且无法中断,我将避免使用 Spot 实例。

当您请求竞价型实例时,您输入了出价。 如果您的出价低于竞价,您将不会获得竞价型实例。 此外,如果没有足够的未使用容量,您将无法获取竞价型实例。

最好的办法是创建并启动一个更大的按需实例,以便每晚执行此作业。

现货价格可能因不同的可用区而异。在申请现货之前,请找到哪个可用区的价格最优惠。每隔几分钟循环一次,直到满足这些条件之一 a) 现货价格低于您在子网中的买入价或 b) 达到一个暂停时间。如果您在阈值时间之前无法获得现货价格,请切换到按需并继续。

请注意,阈值时间应该非常保守。竞价型实例可能会失败(由于价格上涨) - 因此您应该考虑额外的时间以切换到按需实例,并且仍然满足处理时间(SLA 等)。

查看现货价格:http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html

请求竞价型实例:http://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html

最新更新