View a markdown version of this page

管理 On-Demand 实例和竞价型实例 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

管理 On-Demand 实例和竞价型实例

您可以在单个 Auto Scaling 组内启动并自动扩展 On-Demand 实例和竞价型实例队列。可以同时使用以下选项来配置 Auto Scaling 服务如何管理您的环境中的竞价型 On-Demand 实例和实例。

您可以使用 Elastic Beanstalk 控制台、命名空间配置选项、Amazon CLI 或 EB CLI 为环境配置这些选项。

以下选项是 aws:ec2:instances 命名空间的一部分:

  • EnableSpot:当设置为 true 时,此设置会为您的环境启用竞价型实例请求。

  • SpotFleetOnDemandBase‐设置您的 Auto Scaling 组预置的最小 On-Demand实例数,然后再考虑在环境扩展时考虑竞价型实例。

  • SpotFleetOnDemandAboveBasePercentage‐作为您的 Auto Scaling 组在 On-Demand实例之外预置的额外容量的一部分的SpotOnDemandBase实例百分比。

全面列出的选项与 aws:autoscaling:asg 命名空间中的以下选项相关联:

  • MinSize:自动扩缩组中所需的最小实例数量。

  • MaxSize:自动扩缩组中所需的最大实例数量。

重要

EnableSpot 选项设置可能导致 Elastic Beanstalk 将具有启动配置的现有环境迁移到启动模板。此行为需要具备管理启动模板的必要权限。这些权限包含在我们的托管式策略中。如果您使用自定义策略而非托管式策略,则在更新环境配置时,创建或更新环境可能会失败。有关更多信息和重要注意事项,请参阅将 Elastic Beanstalk 环境迁移到启动模板。

同时应用两组命名空间选项

以下几点描述了将这些选项设置组合起来使用对环境扩展有何影响。

  • 只有 MinSize 决定了您环境的初始容量,即您希望运行的最低实例数。

  • SpotFleetOnDemandBase 不会影响初始容量。启用 Spot 后,此选项决定在考虑任何竞价型 On-Demand 实例之前预置了多少实例。

  • 考虑何时 SpotFleetOnDemandBase 小于 MinSize。您仍然会得到完全的 MinSize 实例作为初始容量。SpotFleetOnDemandBase其中至少必须是 On-Demand 实例。

  • 考虑何时 SpotFleetOnDemandBase 大于 MinSize。随着环境的扩展,将保证您至少可获得等于两个值之间的差值的额外实例数。换句话说,在满足SpotFleetOnDemandBase要求 On-Demand 之前,可以保证您至少获得一个额外的(SpotFleetOnDemandBase - MinSize)实例。

Single-instance 环境

在生产环境中,将 Spot 实例作为可扩展、负载均衡的环境的一部分尤其有用。我们建议不要在单实例环境中使用 Spot。如果 Spot 实例不可用,您可能会丢失环境的所有容量(单实例)。您仍可以在单实例环境中使用 Spot 实例进行开发或测试。此种情况下,请务必将 SpotFleetOnDemandBase 和 SpotFleetOnDemandAboveBasePercentage 均设置为零。任何其他设置都会生成一个 On-Demand 实例。

扩展选项设置示例

以下示例演示了设置各种调整选项的不同方案。所有示例都采用已启用 Spot 实例请求的负载均衡环境。

例 1: On-Demand 并将 Spot 作为初始容量的一部分
选项设置
选项 命名空间 值

MinSize

aws:autoscaling:asg

10

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境从十个实例开始,其中七个是 On-Demand (四个基本实例,六个高于基本实例的 50%),三个是 Spot。该环境最多可扩展到 24 个实例。当它向外扩展时,队列 On-Demand 中四个基本 On-Demand 实例之上的部分保持在 50%,总共最多 24 个实例,其中 14 个是 On-Demand (四个基本实例,20个基础实例的 50%),十个是竞价型实例。

例 2:所有 On-Demand 初始容量
选项设置
选项 命名空间 值

MinSize

aws:autoscaling:asg

4

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境从四个实例开始,所有实例都是 On-Demand。该环境最多可扩展到 24 个实例。当它向外扩展时,队列 On-Demand 中四个基本 On-Demand 实例之上的部分保持在 50%,总共最多 24 个实例,其中 14 个是 On-Demand (四个基本实例,20个基础实例的 50%),十个是竞价型实例。

例 3:超出初始容量的额外 On-Demand 基础
选项设置
选项 命名空间 值

MinSize

aws:autoscaling:asg

3

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境从三个实例开始,所有实例都是 On-Demand。该环境最多可扩展到 24 个实例。在最初的三个实例之上的第一个附加实例是 On-Demand,完成四个基本 On-Demand 实例。随着它的进一步扩展,队列 On-Demand 中四个基本 On-Demand 实例之上的部分将保持在 50%,总共最多 24 个实例,其中 14 个是 On-Demand (四个基本实例,20个基础实例的 50%),十个是竞价型实例。