

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

# 多种实例类型的分配策略
<a name="allocation-strategies"></a>

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

要查看混合实例组的最佳实践，请参阅[创建混合实例组的设置概述](mixed-instances-groups-set-up-overview.md)。

**Topics**
+ [竞价型实例](#spot-allocation-strategy)
+ [按需型实例](#on-demand-allocation-strategy)
+ [分配策略如何与权重配合使用](#lowest-price-allocation-strategy)

## 竞价型实例
<a name="spot-allocation-strategy"></a>

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

`price-capacity-optimized`（推荐）  
价格和容量优化分配策略同时考虑价格和容量，以选择中断可能性最小、价格尽可能低的竞价型实例池。  
我们建议您在入门时使用此策略。有关更多信息，请参阅 AWS 博客[中的 EC2 竞价型实例 price-capacity-optimized分配策略简介](https://aws.amazon.com/blogs/compute/introducing-price-capacity-optimized-allocation-strategy-for-ec2-spot-instances/)。

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

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

`lowest-price`（不推荐）  
不推荐使用 `lowest-price` 策略，因为它对竞价型实例造成的中断风险最高。
Amazon EC2 Auto Scaling 将在您为**价格最低的池**设置指定的 N 个竞价型池之间，使用可用区内价格最低的池请求您的竞价型实例。例如，如果您指定四种实例类型和四个可用区，则您的自动扩缩组可以访问最多 16 个竞价型池。（每个可用区内四个。） 如果您为分配策略指定两个竞价型池 (N=2)，则您的自动扩缩组可以使用每个可用区的两个价格最低的池来满足竞价型容量。  
`lowest-price` 策略仅在使用 AWS CLI时可用。  
Amazon EC2 Auto Scaling 会尽力根据您指定的 N 个池提取竞价型实例。但是，如果池在满足所需容量之前耗尽竞价容量，则 Amazon EC2 Auto Scaling 会继续通过从下一个价格最低的池中提取来满足您的请求。为了达到您所需的容量，您可能会从超过指定的 N 个池接收竞价型实例。同样，如果大多数池没有竞价容量，则您可能会从少于指定的 N 个池接收完整所需容量。

**注意**  
如果将竞价型实例配置为启动并开启 [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html)，您需要按小时支付额外的使用费，费率为所选实例类型[按需小时费率](https://aws.amazon.com/ec2/pricing/on-demand/)的 10%。如果分配策略使用价格作为输入，则 Amazon EC2 Auto Scaling 不包括这笔额外费用；只使用 Spot 价格。

## 按需型实例
<a name="on-demand-allocation-strategy"></a>

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

`lowest-price`  
Amazon EC2 Auto Scaling 会根据当前的按需价格自动部署每个可用区中价格最低的实例类型。  
为了满足您的所需容量，您可能会在每个可用区中获得一种以上实例类型的按需型实例。这取决于您请求多大容量。

`prioritized`  
在满足按需型容量时，Amazon EC2 Auto Scaling 将根据启动模板覆盖列表中实例类型的顺序，确定首先使用哪个实例类型。例如，假设您按以下顺序指定三个启动模板覆盖：`c5.large`、`c4.large` 和 `c3.large`。在您的按需型实例启动时，自动扩缩组满足按需型容量的顺序是从 `c5.large` 开始，然后是 `c4.large`，最后是 `c3.large`。  
管理按需实例的优先级顺序时，请考虑以下事项：  
+ 您可以通过使用 Savings Plans 或预留实例预先支付使用费用，以获得按需实例的大幅折扣。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)页面。
+ 对于预留实例，如果 Amazon EC2 Auto Scaling 启动匹配的实例类型，则适用常规按需型实例定价的折扣价。因此，如果存在未使用的 `c4.large` 预留实例，则可以设置实例类型优先级，将预留实例的最高优先级赋予 `c4.large` 实例类型。当 `c4.large` 实例启动时，您可享受预留实例定价。
+ 通过 Savings Plans，当您使用 Amazon EC2 Instance Savings Plans 或 Compute Savings Plans 时，将适用常规按需型实例定价的折扣价。通过 Savings Plans，您可以更灵活地确定实例类型的优先级。只要您使用节省计划涵盖的实例类型，就可以按任何优先级顺序设置它们。您也可以偶尔更改实例类型的整个顺序，同时仍可享受节省计划折扣费率。有关 Savings Plans 的更多信息，请参阅 [Savings Plans 用户指南](https://docs.aws.amazon.com/savingsplans/latest/userguide/)。

## 分配策略如何与权重配合使用
<a name="lowest-price-allocation-strategy"></a>

当您在覆盖（或在组级别的 `"DesiredCapacityType": "vcpu"` 或 `"DesiredCapacityType": "memory-mib"`）中指定 `WeightedCapacity` 参数时，分配策略的工作方式与用于其他自动扩缩组时完全相同。

假设您有一个 Auto Scaling 组，该组包含多个具有不同数量的 v 的实例类型CPUs。 您使用`lowest-price`现货和按需分配策略。如果您选择根据每种实例类型的 vCPU 计数分配权重，Amazon EC2 Auto Scaling 将启动交付时每个分配权重值（例如，每个 vCPU）价格最低的任何实例类型。如果是 Spot 实例，那么这意味着每个 vCPU 的最低 Spot 价格。如果是按需型实例，那么这意味着每个 vCPU 的最低按需价格。

 有关更多信息，请参阅 [配置自动扩缩组以使用实例权重](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)。