分配策略 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

分配策略

当您使用多种实例类型时,您可以根据可能的实例类型管理 Amazon EC2 Auto Scaling 如何满足您的按需容量和竞价容量。为此,您需要指定多个分配策略

要查看混合实例组的最佳实践,请参阅设置概述

竞价型实例

Amazon EC2 Auto Scaling 提供了以下适用于竞价型实例的分配策略:

price-capacity-optimized(推荐)

价格和容量优化分配策略同时考虑价格和容量,以选择中断可能性最小、价格尽可能低的竞价型实例池。

我们建议您在入门时使用此策略。有关更多信息,请参阅 Amazon 博客中的 EC2 竞价型实例 price-capacity-optimized 分配策略简介

capacity-optimized

Amazon EC2 Auto Scaling 将从池中请求您的竞价型实例,对于启动的实例数量而言,该池具有最佳容量。

使用竞价型实例,定价会根据长期供需趋势缓慢发生变化。但是,容量会实时波动。capacity-optimized 策略通过查看实时容量数据并预测可用性最高的池,自动在可用性最高的池中启动 Spot 实例。这有助于最大限度减少工作负载的可能中断,这些工作负载可能会因重启工作和检查点操作而导致更高的中断成本。要使某些实例类型有更高的首先启动机会,请使用 capacity-optimized-prioritized

capacity-optimized-prioritized

设置启动模板覆盖的实例类型顺序,从最高优先级到最低优先级(从列表中的第一项到最后一项降序列出)。Amazon EC2 Auto Scaling 会尽最大努力遵守实例类型优先级,但首先会针对容量进行优化。对于必须最大限度地减少中断可能性,但对某些实例类型的偏好也很重要的工作负载来说,这是一个不错的选择。如果将按需型分配策略设置为 prioritized,则在满足按需型容量时将应用相同的优先级。

lowest-price

Amazon EC2 Auto Scaling 将在您为价格最低的池设置指定的 N 个竞价型池之间,使用可用区内价格最低的池请求您的竞价型实例。例如,如果您指定四种实例类型和四个可用区,则您的自动扩缩组可以访问最多 16 个竞价型池。(每个可用区内四个。) 如果您为分配策略指定两个竞价型池 (N=2),则您的自动扩缩组可以使用每个可用区的两个价格最低的池来满足竞价型容量。

由于此策略仅考虑实例价格而不考虑容量可用性,因此可能会导致较高的中断率。

Amazon EC2 Auto Scaling 会尽力根据您指定的 N 个池提取竞价型实例。但是,如果池在满足所需容量之前耗尽竞价容量,则 Amazon EC2 Auto Scaling 会继续通过从下一个价格最低的池中提取来满足您的请求。为了达到您所需的容量,您可能会从超过指定的 N 个池接收竞价型实例。同样,如果大多数池没有竞价容量,则您可能会从少于指定的 N 个池接收完整所需容量。

注意

如果将竞价型实例配置为启动并开启 AMD SEV-SNP,您需要按小时支付额外的使用费,费率为所选实例类型按需小时费率的 10%。如果分配策略使用价格作为输入,则 Amazon EC2 Auto Scaling 不包括这笔额外费用;只使用 Spot 价格。

按需型实例

Amazon EC2 Auto Scaling 提供了以下可用于按需实例的分配策略:

lowest-price

Amazon EC2 Auto Scaling 会根据当前的按需价格自动部署每个可用区中价格最低的实例类型。

为了满足您的所需容量,您可能会在每个可用区中获得一种以上实例类型的按需型实例。这取决于您请求多大容量。

prioritized

在满足按需型容量时,Amazon EC2 Auto Scaling 组将根据启动模板覆盖列表中实例类型的顺序,确定首先使用哪个实例类型。例如,假设您按以下顺序指定三个启动模板覆盖:c5.largec4.largec3.large。在您的按需型实例启动时,自动扩缩组满足按需型容量的顺序是从 c5.large 开始,然后是 c4.large,最后是 c3.large

管理按需实例的优先级顺序时,请考虑以下事项:

  • 您可以通过使用 Savings Plans 或预留实例预先支付使用费用,以获得按需实例的大幅折扣。有关更多信息,请参阅 Amazon EC2 定价页面。

  • 对于预留实例,如果 Amazon EC2 Auto Scaling 启动匹配的实例类型,则适用常规按需型实例定价的折扣价。因此,如果存在未使用的 c4.large 预留实例,则可以设置实例类型优先级,将预留实例的最高优先级赋予 c4.large 实例类型。当 c4.large 实例启动时,您可享受预留实例定价。

  • 通过 Savings Plans,当您使用 Amazon EC2 Instance Savings Plans 或 Compute Savings Plans 时,将适用常规按需型实例定价的折扣价。通过 Savings Plans,您可以更灵活地确定实例类型的优先级。只要您使用 Savings Plan 涵盖的实例类型,就可以按任何优先级顺序设置它们。您也可以偶尔更改实例类型的整个顺序,同时仍可享受 Savings Plan 折扣费率。有关 Savings Plans 的更多信息,请参阅 Savings Plans 用户指南

分配策略如何与权重配合使用

当您在替代("DesiredCapacityType": "vcpu"或在组级别)中指定WeightedCapacity参数"DesiredCapacityType": "memory-mib"时,分配策略的工作原理与其他 Auto Scaling 组完全相同。

唯一的区别是,当您选择lowest-priceprice-capacity-optimized策略时,您的实例来自每个可用区中每单位价格最低的实例池。有关更多信息,请参阅 将 Auto Scaling 组配置为使用实例权重

例如,假设您有一个自动扩缩组,该组具有多种实例类型,每个实例类型带有不同数量的 vCPU。针对竞价和按需分配策略使用 lowest-price。如果您选择根据每种实例类型的 vCPU 计数分配权重,Amazon EC2 Auto Scaling 将启动交付时每个分配权重值(例如,每个 vCPU)价格最低的任何实例类型。如果是 Spot 实例,那么这意味着每个 vCPU 的最低 Spot 价格。如果是按需型实例,那么这意味着每个 vCPU 的最低按需价格。