AWS现货舰队:保存现货实例的第一步

什么是AWS现货舰队?

亚马逊网络服务(AWS)现货舰队是AWS现货实例这些服务器来自亚马逊的备用容量池,折扣最高可达90%。需要仔细管理现货实例,因为当市场价格接近您的投标价格时,亚马逊会在短时间内终止现货实例。

应用程序可以通过Spot Fleet应用程序编程接口(API)或命令行接口(CLI)请求Spot Fleet。由于现货实例定价经常变化,EC2不断尝试根据预定义的值来平衡容量。

要请求Spot Fleet,需要定义每实例小时的最大价格和所需的目标容量。您还需要输入启动规范、定义实例类型、所需实例的数量以及选择可用分区。

当AWS需要利用备用EC2容量为购买了预留实例、节省计划或按需实例的客户提供服务时,他们将终止现有实例并启动替换实例。

在完成现货舰队请求时,AWS现货舰队会自动选择价格最低的实例。一旦Spot fleet启用,系统就会自动管理所有已供应的实例集合。

这是我们系列文章的一部分AWS自动缩放

在这篇文章中,你将学到:

现货舰队能解决什么问题?

现场实例的基本问题是它们可以在短时间内终止。对于许多类型的应用程序,特别是任务关键型应用程序,这可能是一个问题。应用程序必须能够承受在现场实例上运行的任何组件的故障,平稳地将该组件移动到另一个现场实例或按需实例。

另一个挑战是现货实例可用性非常不稳定。如果组织为其定点实例指定了一种实例类型和可用性区域,那么就有很高的风险,即特定类型的定点实例将无法在需要时保持可用。但是,通过混合实例类型和提供几种可能的可用性区域,更有可能保持实例可用性。

Spot Fleet背后的想法是让亚马逊用户:

  • 使用混合的现货实例,使用不同的实例类型,并从不同的可用性区域绘制
  • 使用现货实例,但也提供随需应变的实例作为备份,以防现货实例不可用

Spot fleet还允许开发人员指定在实例终止时应该运行的脚本。以前,这将由一个控制器应用程序完成,它代表一个单点故障。现在,开发人员可以将现场实例终止的管理交给Amazon服务。

现货舰队请求如何工作

要创建一个Spot Fleet,你需要发出一个Spot Fleet请求,指定:

  • 需要多少实例(目标容量)
  • 有多少按需实例(可选)
  • 启动规范,包括实例类型、要使用的AMI、可用性区域和安全组

有两种类型的现货舰队请求:

  • 请求在一次性的基础上创建一个现货舰队
  • 维护创建一个Spot舰队,并在持续的基础上保持所需的容量,识别和恢复失败的实例

在发出Spot Fleet请求之前,您应该仔细考虑哪种实例类型将满足您的应用程序需求,以及舰队的哪一部分应该是按需实例,以确保在Spot实例终止时,至少有一些实例将保持活动状态。

现货舰队自动缩放

自动扩展允许您根据当前需求自动增加或减少现货舰队的目标容量。Spot Fleet可以基于几种扩展策略之一,在指定范围内启动额外的实例(向外扩展)或终止实例(向内扩展)。

现货舰队支持以下类型的自动缩放:

  • 目标跟踪,根据具体指标目标值增加或减少容量。例如,您可以指定Spot Fleet中实例的CPU利用率不能高于80%。
  • 一步扩展-根据CloudWatch警报触发的一系列逐步调整来增加或减少舰队的容量。
  • 预定的比例-在特定日期和时间增加或减少预定数量的容量。

关于Spot Fleet如何自动缩放工作的几个要点:

  • Spot Fleet使用冷却时间来缩放事件。这意味着在伸缩事件发生后的几秒钟内,它等待系统指示器调整,并且不执行额外的向外伸缩事件。例如,在向外扩展之后,在确定是否需要进一步向外扩展之前,它会等待几秒钟以调整CPU利用率。
  • 如果在冷却期间触发了额外的CloudWatch告警,则立即执行向外缩放或向内缩放事件。
  • Amazon建议使用频率为1分钟的实例度量来扩展事件,以便更快地响应应用程序需求。这需要在CloudWatch中启用详细的监控,这会产生额外的成本。
了解更多EC2自动缩放

现货舰队限制

AWS Spot Fleet是对以前管理现货实例方法的重大改进,但仍有不足之处。

以下是spot Fleet不提供的与spot实例管理相关的关键特性。

  • 不保证,早期预测实例终止即使有现货舰队,现货实例也会提前2分钟终止。虽然亚马逊提供了“再平衡警告”,但它不保证警告会在终止前2分钟以上发出。这意味着您无法在足够的时间内可靠地将工作负载迁移到另一个实例。
  • 不能保证存储持久性-如果spot实例终止,spot Fleet不保证新实例可以附加到旧EBS卷。这取决于同一个实例池中EBS卷容量的可用性,并且要求将临时请求定义为“持久的”。
  • 对容器的有限支持-容器自动缩放需要高级配置,不支持容器正确大小。
  • 不能自动回退到按需-Spot Fleet不会让你在spot实例失败时自动切换到按需实例。
  • 不支持主动实例自动恢复-Spot舰队只在spot实例被终止后恢复实例,并且只用于“维护”请求。
  • 不能保证IP持久性-只有实例或舰队分别被定义为“persistent”或“maintain”时,才支持IP持久化。

AWS Spot实例管理与Spot由NetApp

NetApp的Spot允许您在EC2 Spot实例上可靠地运行关键任务和生产工作负载。使用预测性再平衡算法,可以提前一小时检测到现场实例中断,并主动替换处于风险中的实例。如果没有可用的现场实例,就会退回到按需实例,从而保证工作负载的连续性。如果有可用的、未使用的储蓄计划或ri, Spot by NetApp将在启动新的Spot实例之前利用这些计划,以确保最大的成本效益。

了解更多关于这两者使用现场实例的信息非负载以及容器化和Kubernetes工作负载

Baidu
map