【问题标题】:AWS autoscaling and spot instancesAWS 自动扩展和 Spot 实例
【发布时间】:2020-05-12 09:46:43
【问题描述】:

我正在处理我的小项目,并混合使用现场实例和按需实例。我需要设置自动缩放以仅在不同的 AZ 中启动 Spot 实例。 例如,所需的实例数是 3,我们有 4 个可用区来放置它们。自动缩放尝试将实例放置在不同的 AZ 中,但如果失败,它会在同一个 AZ 中启动它们,这是我不想要的。

我想使用另一种逻辑。如果 Autoscaling 无法将所有 Spot 实例放置在不同的 AZ 中,它会改为启动按需实例。是否可以使用我们拥有的工具进行设置?

我想避免几个 Spot 实例最终在同一个 AZ 中的情况,因为如果 AZ 容量下降,亚马逊会迅速终止它们,我将没有时间在其他地方重新启动它们。

【问题讨论】:

  • 您在使用启动模板吗? docs.aws.amazon.com/autoscaling/ec2/userguide/… 使用启动模板而不是带有自动缩放组的启动配置将提供所需的行为
  • 不,不会。一个模板让我可以指定现货和按需实例之间的预设平衡,但它不会让自动缩放首先尝试使用现货实例,如果不可能使用按需实例。

标签: amazon-web-services instance autoscaling


【解决方案1】:

如果您希望避免 Spot 实例失去容量,那么一个好的策略是:

  • 使用多种实例类型:如果一种类型的 Spot 实例因容量不足而终止,则其他实例类型不太可能同时受到影响
  • 将实例分布在跨可用区(正如您所做的那样),因为每个 AZ 中的容量池是独立的

Auto Scaling 将自动尝试跨可用区平衡 EC2 实例的数量。 Auto Scaling 在任何时候都只能有一个活动的启动配置或启动模板。因此,它不能在按需实例和现场实例之间自动切换。

您可能想查看Launching an EC2 Fleet,它可以跨多个可用区自动启动一系列不同的实例类型。还有一些推荐的EC2 Fleet Configuration Strategies

【讨论】:

  • 我想应用自动缩放将首先使用现场实例的逻辑,如果失败,请尝试使用按需实例。
  • 有没有办法限制自动缩放以在同一个 AZ 中启动实例?如果不可能将它们全部放在不同的 AZ 中,我完全可以不启动实例。
  • Auto Scaling 无法使用 Spot,如果失败,请按需使用。您需要进行额外的编码(以某种方式)来实现这一点。如果可能,Auto Scaling 将始终尝试将实例放在单独的 AZ 中。您无法更改此行为。
  • 约翰·罗滕斯坦,够公平的。我预计亚马逊不会提供让他们的客户省钱的工具 :)))))) 现在我正在考虑如何编写此功能。
  • 相反,提供了许多节省资金的工具,例如 Spot Instances、Trusted Advisor 和 Auto Scaling 本身(在不需要容量时进行缩减)。但是,Auto Scaling 一次只能有一个配置。
猜你喜欢
  • 2019-03-08
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 2014-10-06
  • 2018-08-09
  • 2020-07-12
  • 1970-01-01
  • 2016-09-24
相关资源
最近更新 更多