使用Spot Fleet Autoscaling而不是使用现货价格的AutoScaling组有什么好处?

时间:2016-09-06 13:37:58

标签: amazon-web-services amazon-ec2

最近亚马逊AWS发布了针对现货车队的Auto Scaling(https://aws.amazon.com/blogs/aws/new-auto-scaling-for-ec2-spot-fleets/)。 Auto Scaling组已允许您设置竞价价格以折扣而非预留实例获取竞价型实例。

据我所知,Spot Fleets允许您根据vCPU定义车队容量,混合不同的实例类型来实现这一目标。据我所知,我不认为这可以使用Auto Scaling完成。

我的用例非常简单:使用Spot Fleets(或Auto Scaling with Spot实例)以降低的价格增加群集的容量,同时保留所需的最低预留实例。我可以复制我的ASG,设定现货价格并且我已经完成了,但显然这个功能现在也作为Spot Fleets的一部分存在。

一个优于另一个的优势是什么?是否有任何重大原因需要转换?

3 个答案:

答案 0 :(得分:3)

Spot Fleet的主要优势在于,如果AZ正在经历价格飙升,它会在可用区域之间重新平衡实例。相比之下,ASG会让您的运行实例少于您的请求。

这一点,以及跨实例类型而不仅仅是可用区域的平衡能力,使得Spot Fleets在维持目标容量方面比ASG更加可靠。它们来得恰到好处,因为现货价格出现了更大的波动。

那就是说,现货舰队目前缺少ASG提供的很多功能,正如鲁本提到的那样。

答案 1 :(得分:2)

我可能已经找到了继续使用具有竞价型实例的Auto Scaling组的正当理由:您可以将这些组合附加到负载均衡器/目标组,而现货船队目前无法执行此操作。

对于我的用例而言,这并不重要,因为我的集群是ECS集群,实例将在启动容器时自动在目标组中注册,但无论如何都要知道。

编辑:显然,Spot Fleets也不支持CreationPolicies,所以如果需要,你可以选择使用ASG或者使用WaitConditions。

答案 2 :(得分:2)

Spot-fleet能够将工作负载资源需求作为多个vCPU来解决,当某人打算利用EC2容器服务时,这完全符合要求。

但是,现货船队不像ASG那样成熟。我们无法从UI向spot-fleet实例添加标签,因此我们必须编写一个脚本来处理它。此外,SpotFleet启动的实例还没有通过CodeDeploy对初始代码推送提供开箱即用的支持。为了第一次部署代码,我们必须创建自定义脚本并将其作为userdata传递。