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

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

管理按需实例和竞价型实例

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

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

这些选项是 aws: ec2: instances 命名空间的一部分:

  • EnableSpot-设置为true此设置后,将为您的环境启用竞价型实例请求。

  • SpotFleetOnDemandBase-在环境扩展时考虑竞价型实例之前,设置您的 Auto Scaling 组预配置的最小按需实例数量。

  • SpotFleetOnDemandAboveBasePercentage-按需实例占您的 Auto Scaling 组在SpotOnDemandBase实例之外配置的额外容量的百分比。

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

  • MinSize-您希望在 Auto Scaling 组中包含的最小实例数。

  • MaxSize-您想要加入 Auto Scaling 组的最大实例数。

重要

EnableSpot 选项设置可能导致 Elastic Beanstalk 使用启动模板创建环境或将现有环境从启动配置更新为启动模板。这样做需要管理启动模板的必要权限。这些权限包含在我们的托管策略中。如果您使用自定义策略而不是我们的托管策略,则当您为环境启用竞价型实例时,环境创建或更新可能会失败。有关更多信息和其他注意事项,请参阅为你的 Elastic Beanstalk 环境启动模板

应用两组命名空间选项

以下几点描述了这些选项设置的组合如何影响环境的扩展。

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

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

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

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

单实例环境

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

缩放选项设置示例

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

例 1:初始容量包含按需实例和 Spot 实例
选项设置
选项 命名空间

MinSize

aws:autoscaling:asg

10

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境的初始实例数是十个,其中七个是按需实例(四个基本实例,以及基本实例以外的六个实例的 50%),三个是 Spot 实例。该环境最多可扩展到 24 个实例。扩展时,队列中四个基本按需实例以外的按需实例比例保持为 50%,该队列整体最多可包含 24 个实例,其中 14 个是按需实例(4 个基本实例,以及基本实例以外的 20 个实例的 50%),10 个是 Spot 实例。

例 2:所有按需初始容量
选项设置
选项 命名空间

MinSize

aws:autoscaling:asg

4

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境的初始实例数是四个,所有这些实例都是按需实例。该环境最多可扩展到 24 个实例。扩展时,队列中四个基本按需实例以外的按需实例比例保持为 50%,该队列整体最多可包含 24 个实例,其中 14 个是按需实例(4 个基本实例,以及基本实例以外的 20 个实例的 50%),10 个是 Spot 实例。

例 3:初始容量以外的额外按需基本实例
选项设置
选项 命名空间

MinSize

aws:autoscaling:asg

3

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

在此示例中,环境的初始实例数是三个,所有这些实例都是按需实例。该环境最多可扩展到 24 个实例。除开三个初始实例以外添加的第一个实例是按需实例,用于凑齐四个基本按需实例。随着进一步扩展,队列中四个基本按需实例以外的按需实例比例保持为 50%,该队列整体最多可包含 24 个实例,其中 14 个是按需实例(4 个基本实例,以及基本实例以外的 20 个实例的 50%),10 个是 Spot 实例。