Auto Scaling 组具有多个实例类型和购买选项 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Auto Scaling 组具有多个实例类型和购买选项

您可以启动并自动扩展单个 Auto Scaling 组中的一组按需实例和竞价型实例。除了享受使用竞价型实例的折扣外,您还可以使用预留实例或 Savings Plan 获得常规按需实例定价的折扣费率。以上所有因素的综合作用是帮助您进一步节约 EC2 实例成本,同时确保为您的应用程序获得所需的规模和性能。

首先在一个启动模板中指定常用配置参数,并在创建 Auto Scaling 组时选择该模板。当您配置 Auto Scaling 组时,您可以:

  • 为组选择一个或多个实例类型(可以选择性地覆盖启动模板指定的实例类型)。

  • 定义多个启动模板,以允许具有不同 CPU 架构(例如 Arm 和 x86)的实例在同一 Auto Scaling 组中启动。

  • 为每个实例类型分配一个单独的权重。例如,如果实例类型提供不同的 vCPU、内存、存储或网络带宽功能,执行此操作可能很有用。

  • 确定可从 Savings Plan 或预留实例折扣定价中受益的实例类型的优先级。

  • 指定要启动的按需容量和竞价容量,并指定可选的按需容量基本部分。

  • 定义 Amazon EC2 Auto Scaling 应如何在实例类型之间分配按需和竞价容量。

  • 启用容量再平衡。启用容量再平衡时,Amazon EC2 Auto Scaling 将尝试在 Amazon EC2 Spot 服务通知竞价型实例处于较高的中断风险时启动竞价型实例。启动新实例后,它会终止旧实例。有关更多信息,请参阅 使用容量重新平衡来处理 Amazon EC2 竞价型实例中断

通过跨多个可用区中运行的多个实例类型部署应用程序以提高可用性。您只能使用一种实例类型,但最佳做法是使用几种实例类型,以便 Amazon EC2 Auto Scaling 在您选择的可用区中实例容量不足的情况下启动另一种实例类型。对于竞价型实例,如果实例容量不足,Amazon EC2 Auto Scaling 继续尝试其他竞价型实例池(取决于您选择的实例类型和分配策略),而不是启动按需实例,以便您可以利用竞价型实例节省的成本。

有两种方法可以将多种实例类型与 Auto Scaling 组配置关联起来:

  • 如本主题中所述手动添加实例类型。

  • 选择一组实例属性,用作选择 Auto Scaling 组所使用实例类型的标准。这称为基于属性的实例类型选择。有关更多信息,请参阅使用基于属性的实例类型选择

分配策略

以下分配策略决定 Auto Scaling 组如何根据可用的实例类型满足按需和竞价容量

Amazon EC2 Auto Scaling 首先尝试确保实例在您指定的可用区之间均匀平衡。然后,它根据指定的分配策略启动实例类型。

竞价型实例

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

capacity-optimized

Amazon EC2 Auto Scaling 可以从竞价型实例池中分配实例,并为启动的实例数量提供最佳容量。通过这种方式部署可帮助您最高效地使用剩余 EC2 容量。

使用竞价型实例,定价会根据长期供需趋势缓慢发生变化,但容量会实时波动。capacity-optimized 策略通过查看实时容量数据并预测可用性最高的池,自动在可用性最高的池中启动 Spot 实例。这适用于大数据和分析、图像和媒体渲染以及机器学习等工作负载。它也适用于高性能计算,这些计算可能会因重启工作和检查点而产生更高的中断成本。通过实现更低的中断可能性,capacity-optimized 策略可以降低您工作负载的整体成本。

或者,您可以使用 capacity-optimized-prioritized 分配策略,然后设置启动模板覆盖列表中的实例类型顺序,从最高优先级到最低优先级(列表中的第一优先级到最后优先级)。Amazon EC2 Auto Scaling 会尽最大努力遵守实例类型优先级,但首先会针对容量进行优化。对于必须最大限度地减少中断可能性,但对某些实例类型的偏好也很重要的工作负载来说,这是一个不错的选择。

lowest-price

Amazon EC2 Auto Scaling 根据您指定的每个可用区的 N 个池以及每个可用区中价格最低的竞价型实例池分配您的竞价型实例。

例如,如果您指定四个实例类型和四个可用区,您的 Auto Scaling 组最多可以访问 16 个竞价池(每个可用区中 4 个)。如果您为分配策略指定两个竞价池 (N=2),您的 Auto Scaling 组可以使用每个可用区的两个价格最低的池来满足竞价容量。

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

首先,我们建议您选择 capacity-optimized 分配策略并指定适合您的应用程序的若干种实例类型。此外,您可以为 Amazon EC2 Auto Scaling 定义一系列可用区,以便在启动实例时从中选择。

(可选)您可以指定您的竞价型实例的最高价。如果未指定最高价,则默认最高价为按需价格,不过您仍可以获得竞价型实例提供的大幅折扣。这些折扣得以实现是得益于使用新的竞价定价模型带来了稳定的竞价定价。

有关竞价型实例的分配策略的更多信息,请参阅 Amazon 博客中的针对 Amazon EC2 竞价型实例的容量优化分配策略简介

按需实例

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

lowest-price

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

为确保满足所需容量,您可能会在每个可用区中收到一种以上实例类型的按需实例,具体取决于您请求的容量。

注意

目前,在缩减事件期间实施终止策略时,Amazon EC2 Auto Scaling 不支持按需实例的 lowest-price 分配策略。

prioritized

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

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

您可以通过使用 Savings Plans 或预留实例预先支付使用费用,以获得按需实例的大幅折扣。有关 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 用户指南

控制按需型实例的比例

您可以完全控制 Auto Scaling 组中作为按需实例启动的实例所占比例。为确保您始终拥有实例容量,您可以指定组中作为按需实例启动的百分比,也可以选择指定初始的按需实例基数。如果您选择指定按需实例的基本容量,当 Amazon EC2 Auto Scaling 组横向扩展时,该组会仅在启动此基本容量之后启动竞价型实例。超出基本容量的任何内容都使用按需百分比来确定要启动多少按需型实例和竞价型实例。您可以指定 0 到 100 之间的任意数字来作为按需百分比。

Amazon EC2 Auto Scaling 将百分比转换为等效数量的实例。如果结果创建一个小数,Amazon EC2 Auto Scaling 向上舍入为下一个整数,以支持按需实例。

在 Auto Scaling 组大小增加时,该组的行为如下所示:

示例:扩展行为
实例分配 各购买选项的运行实例总数
10 20 30 40
示例 1
On-Demand base: 10 10 10 10 10
On-Demand percentage above base: 50% 0 5 10 15
Spot percentage: 50% 0 5 10 15
示例 2
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 0% 0 0 0 0
Spot percentage: 100% 10 20 30 40
示例 3
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 60% 6 12 18 24
Spot percentage: 40% 4 8 12 16
示例 4。
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 100% 10 20 30 40
Spot percentage: 0% 0 0 0 0
示例 5
On-Demand base: 12 10 12 12 12
On-Demand percentage above base: 0% 0 0 0 0
Spot percentage: 100% 0 8 18 28

竞价型实例的最佳实践

在创建 Auto Scaling 组以请求竞价型实例之前,请查看适用于 Linux 实例的 Amazon EC2 用户指南中的 EC2 竞价的最佳实践。使用这些最佳实践规划您的请求,以便以可能的最低价格预置需要的实例类型。还建议执行以下操作:

  • 使用默认最高价 (这是按需价格)。您只需为您启动的竞价型实例支付 Spot 价格。如果 Spot 价格在最高价范围内,则是否满足您的请求取决于可用性。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的定价和节省

  • 创建包括多种实例类型的 Auto Scaling 组。由于可用区内每个实例类型的容量分开波动,因此,如果您灵活使用实例类型,则通常可以获得更多计算容量。

  • 同样,不要局限为仅选择最受欢迎的实例类型。由于价格是根据长期需求进行调整的,常见实例类型(如最近启动的实例系列)的价格调整频率往往更高。选择不太热门的较旧实例类型往往能降低成本和减少中断。

  • 我们建议您使用 capacity-optimized 或者 capacity-optimized-prioritized 分配策略。这意味着 Amazon EC2 Auto Scaling 使用基于可用竞价容量选择的最优竞价池启动实例,这有助于您减少竞价中断的可能性。

  • 如果选择 lowest-price 分配策略并运行 Web 服务,请指定较大数量的竞价池,例如 N=10。指定一个较大竞价池数量,以减少其中一个可用区中的池暂时不可用时造成的竞价型实例中断影响。如果您运行批处理或其他非关键任务应用程序,可以指定较小竞价池数量,例如,N = 2。这有助于确保您通过每个可用区中价格最低的竞价池提供竞价型实例。

如果您打算指定最高价格,则可以使用 Amazon CLI 或 SDK 创建 Auto Scaling 组,但务必谨慎。如果您的最高价低于选定的实例类型的 Spot 价格,则不会启动您的竞价型实例。

先决条件

创建启动模板。有关更多信息,请参阅 为 Auto Scaling 组创建启动模板

验证您拥有使用启动模板所需的权限。使用启动模板时会检查您的 ec2:RunInstances 权限。如果启动模板指定了 IAM 角色,也会检查您的 iam:PassRole 权限。有关更多信息,请参阅启动模板支持

创建包括竞价型实例和按需型实例的 Auto Scaling 组(控制台)

完成以下步骤以创建您可以扩展的竞价型实例和按需型实例队组。

先决条件 中所述,请在开始之前确认您已创建启动模板。

验证启动模板尚未请求竞价型实例。

创建包括竞价型实例和按需实例的 Auto Scaling 组

  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 在屏幕顶部的导航栏中,选择在创建启动模板时使用的同一 Amazon Web Services 区域。

  3. 选择 Create an Auto Scaling group (创建 Auto Scaling 组)。

  4. 选择启动模板或配置页面上,执行以下操作:

    1. Auto Scaling 组名称中,输入 Auto Scaling 组的名称。

    2. 对于启动模板,请选择现有启动模板。

    3. 对于 Launch template version(启动模板版本),选择 Auto Scaling 组在扩展时使用启动模板的默认版本、最新版本还是特定版本。

    4. 验证您的启动模板是否支持您计划使用的所有选项,然后选择下一步

  5. Choose instance launch options(选择实例启动选项)页面的 Network(网络)下方,为 VPC选择相应的 VPC。 Auto Scaling 组必须与您在启动模板中指定的安全组创建在相同的 VPC 中。

  6. 对于 Availability Zones and subnets (可用区和子网),选择指定 VPC 中的一个或多个子网。可以在多个可用区中使用子网以提供高可用性。有关更多信息,请参阅选择 VPC 子网时的注意事项

  7. 对于 Instance type requirements (实例类型要求),选择 Override launch template (覆盖启动模板)、Manually add instance types (手动添加实例类型)。

    1. 对于 Instance types (实例类型),选择可以启动的实例类型。您可以使用我们的建议作为起点。

    2. (可选)要更改实例类型的顺序,请使用箭头。如果您选择基于优先级的分配策略,则按照设置实例类型的顺序设置其启动优先级。

    3. (可选)要使用实例权重,请为每个实例类型分配一个相对权重,该权重与实例应计入 Auto Scaling 组容量的数量相对应。

  8. Instance purchase options (实例购买选项) 下,根据需要更新购买选项,以使用竞价型实例降低应用程序的成本。

    1. 对于 Instances distribution (实例分配),指定要为 Auto Scaling 组启动的按需型实例与竞价型实例的百分比。如果您的应用程序无状态、容错,并且可以处理中断的实例,则可以指定更高的竞价型实例百分比。

    2. 根据您是否选择启动竞价型实例,可以选中 Include On-Demand base capacity(包括按需基本容量)旁边的复选框,然后指定按需实型例必须达到的 Auto Scaling 组最小初始容量。超出基本容量的任何内容都使用实例分配设置来确定要启动多少按需实例和 Spot 实例。

  9. Allocation strategies (分配策略) 下,对于 On-Demand allocation strategy (按需分配策略),选择分配策略。

  10. 对于 Spot allocation strategy (竞价分配策略),选择分配策略。建议您保留 Capacity optimized(优化容量)的默认设置。如果您不希望保留默认值,请选择 Lowest price (最低价格),然后输入为实现多样化所包括的最低价格 Spot 实例池数量。

  11. 对于 Capacity rebalance (容量再平衡),选择启用还是禁用容量再平衡。有关更多信息,请参阅 使用容量重新平衡来处理 Amazon EC2 竞价型实例中断

  12. 选择 Next (下一步)

    或者,您可接受其余默认值,然后选择 Skip to review (跳到审核)。

  13. Configure advanced options (配置高级选项) 页面上,根据需要配置选项,然后选择 Next (下一步):

  14. (可选)在 Configure group size and scaling policies (配置组大小和扩展策略) 页面上,配置以下选项,然后选择 Next (下一步):

    1. 对于 Desired capacity (所需容量),请输入要启动的实例的初始数量。将此数字更改为超出最小容量或最大容量限制的值时,必须更新最小容量最大容量的值。有关更多信息,请参阅为 Auto Scaling 组设置容量限制

    2. 要自动缩放 Auto Scaling 组的大小,请选择 Target tracking scaling policy(目标跟踪扩展策略),并按照说明操作。有关更多信息,请参阅Amazon EC2 Auto Scaling 的目标跟踪扩缩策略

    3. Instance scale-in protection(实例缩减保护)下,选择是否启用实例缩减保护。有关更多信息,请参阅 实例横向缩减保护

  15. (可选)要接收通知,请为 Add notification(添加通知)配置通知,然后选择 Next(下一步)。有关更多信息,请参阅在 Auto Scaling 组扩展时获取 Amazon SNS 通知

  16. (可选)要添加标签,请选择 Add tag(添加标签),为每个标签提供标签键和值,然后选择 Next(下一步)。有关更多信息,请参阅为 Auto Scaling 组和实例添加标签

  17. Review(查看)页面上,选择 Create Auto Scaling group(创建 Auto Scaling 组)。

配置竞价型实例分配策略(Amazon CLI)

以下示例配置显示如何使用不同的竞价分配策略启动竞价型实例。

注意

这些示例显示如何使用 JSON 或 YAML 格式的配置文件。如果您使用 Amazon CLI 版本 1,必须指定 JSON 格式的配置文件。如果您使用 Amazon CLI 版本 2,可以指定 YAML 或 JSON 格式的配置文件。

示例 1:使用 capacity-optimized 分配策略启动竞价型实例

以下 create-auto-scaling-group 命令会创建指定以下内容的 Auto Scaling 组:

  • 作为按需型实例 (0) 启动的组的百分比以及以 (1) 开头的按需实例的基本数量

  • 按优先级顺序(c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)启动的实例类型

  • 要在其中启动实例的子网(subnet-5ea0c127subnet-6194ea3bsubnet-c934b782),每个子网对应于不同的可用区

  • 启动模板 (my-launch-template) 和启动模板版本 ($Default)

Amazon EC2 Auto Scaling 尝试满足您的按需容量时,它会首先启动 c5.large 实例类型。竞价型实例来自每个可用区中基于竞价型实例容量的最佳竞价池。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

下面是一个 config.json 示例文件。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

或者,您可以使用以下 create-auto-scaling-group 命令创建 Auto Scaling 组,引用 YAML 文件作为 Auto Scaling 组的唯一参数,而不是 JSON 文件。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

下面是一个 config.yaml 示例文件。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

示例 2:使用 capacity-optimized-prioritized 分配策略启动竞价型实例

以下 create-auto-scaling-group 命令会创建指定以下内容的 Auto Scaling 组:

  • 作为按需型实例 (0) 启动的组的百分比以及以 (1) 开头的按需实例的基本数量

  • 按优先级顺序(c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)启动的实例类型

  • 要在其中启动实例的子网(subnet-5ea0c127subnet-6194ea3bsubnet-c934b782),每个子网对应于不同的可用区

  • 启动模板 (my-launch-template) 和启动模板版本 ($Latest)

Amazon EC2 Auto Scaling 尝试满足您的按需容量时,它会首先启动 c5.large 实例类型。当 Amazon EC2 Auto Scaling 尝试满足您的竞价容量时,它会尽最大努力遵守实例类型优先级,但首先会针对容量进行优化。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

下面是一个 config.json 示例文件。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized-prioritized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

或者,您可以使用以下 create-auto-scaling-group 命令创建 Auto Scaling 组,引用 YAML 文件作为 Auto Scaling 组的唯一参数,而不是 JSON 文件。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

下面是一个 config.yaml 示例文件。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized-prioritized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

示例 3:使用在两个池之间不同的 lowest-price 分配策略启动竞价型实例

以下 create-auto-scaling-group 命令会创建指定以下内容的 Auto Scaling 组:

  • 作为按需型实例 (50) 启动的组的百分比,不同时指定以某个数字开头的按需型实例的基本数量

  • 按优先级顺序(c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)启动的实例类型

  • 要在其中启动实例的子网(subnet-5ea0c127subnet-6194ea3bsubnet-c934b782),每个子网对应于不同的可用区

  • 启动模板 (my-launch-template) 和启动模板版本 ($Latest)

Amazon EC2 Auto Scaling 尝试满足您的按需容量时,它会首先启动 c5.large 实例类型。对于您的竞价容量,Amazon EC2 Auto Scaling 尝试在每个可用区中的两个价格最低的池中平均启动竞价型实例。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

下面是一个 config.json 示例文件。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "lowest-price", "SpotInstancePools": 2 } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

或者,您可以使用以下 create-auto-scaling-group 命令创建 Auto Scaling 组,引用 YAML 文件作为 Auto Scaling 组的唯一参数,而不是 JSON 文件。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

下面是一个 config.yaml 示例文件。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: lowest-price SpotInstancePools: 2 MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

验证 Auto Scaling 组是否已正确配置以及该组是否已启动实例(Amazon CLI)

要检查 Auto Scaling 组是否已正确配置以及它是否已启动实例,请使用 describe-auto-scaling-groups 命令。验证混合实例策略和子网列表是否存在且配置正确。如果实例已启动,您将看到实例及其状态的列表。要查看实例启动所产生的扩展活动,请使用 describe-scaling-activities 命令。您可以监控正在进行和最近完成的扩展活动。