EC2 队列 示例配置 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

EC2 队列 示例配置

下列示例显示了可与 create-fleet 命令结合使用以创建 EC2 队列的启动配置。有关 create-fleet 参数的更多信息,请参阅EC2 队列 JSON 配置文件参考

示例 1:启动 Spot 实例作为默认购买选项

下面的示例指定了 EC2 队列中所需的最少参数:启动模板、目标容量和默认购买选项。启动模板由其启动模板 ID 和版本号标识。队列的目标容量为 2 个实例,默认购买选项为 spot,因此队列启动两个 Spot 实例。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }

示例 2:启动按需实例作为默认购买选项

下面的示例指定了 EC2 队列中所需的最少参数:启动模板、目标容量和默认购买选项。启动模板由其启动模板 ID 和版本号标识。队列的目标容量为 2 个实例,默认购买选项为 on-demand,因此队列启动两个 按需实例。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "on-demand" } }

示例 3:启动按需实例作为主容量

下面的示例为队列指定两个实例的总目标容量和 1 个个按需实例的目标容量。默认购买选项为 spot。队列按照指定的方式启动 1 个个按需实例,但需要再启动一个实例以满足总目标容量要求。差值的购买选项是通过 TotalTargetCapacityOnDemandTargetCapacity = DefaultTargetCapacityType 计算的,这使得队列启动 1 个 Spot 实例。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "OnDemandTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } }

示例 4:使用 lowest-price 分配策略启动 Spot 实例

如果未指定 Spot 实例的分配策略,则使用默认分配策略 lowest-price。以下示例使用 lowest-price 分配策略。覆盖启动模板的三个启动规范有不同的实例类型,但有相同的权重容量和子网。总目标容量为两个实例,默认购买选项为 spot。EC2 队列按启动规范的最低价格实例类型启动两个 Spot 实例。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "c4.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" }, { "InstanceType": "c3.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }

示例 5:使用容量预留和 prioritized 分配策略启动按需实例

可以通过将 容量预留 的使用策略配置为 use-capacity-reservations-first 来将队列配置为在启动 按需实例 时首先使用 按需容量预留。此外,如果多个实例池具有未使用的 容量预留,则应用选定的按需分配策略。在该示例中,按需分配策略为 prioritized

在该示例中,有 15 个可用的未使用 容量预留。此数目超过了队列的 12 个 按需实例 的按需容量。

账户在 3 个不同的池中有以下 15 个未使用的 容量预留。每个池中的 容量预留 数由 AvailableInstanceCount 指示。

{ "CapacityReservationId": "cr-111", "InstanceType": "c4.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c3.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "c5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

以下队列配置仅显示该示例的相关配置。按需分配策略为 prioritized,容量预留 的使用策略为 use-capacity-reservations-first。总目标容量为 12,而默认目标容量类型为 on-demand

注意

队列类型必须为 instant。其他队列类型不支持 容量预留。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-1234567890abcdefg", "Version": "1" } "Overrides": [ { "InstanceType": "c4.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 1.0 }, { "InstanceType": "c3.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 2.0 }, { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 3.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 12, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "prioritized" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

在使用上述配置创建 instant 队列后,将启动下面的 12 个实例来满足目标容量:

  • us-east-1a 中的 5 个 c4.large 按需实例 – us-east-1a 中的 c4.large 的优先级第一,并且有 5 个可用的未使用 c4.large 容量预留

  • us-east-1a 中的 5 个 c3.large 按需实例 – us-east-1a 中的 c3.large 的优先级第二,并且有 5 个可用的未使用的 c3.large 容量预留

  • us-east-1a 中的 2 个 c5.large 按需实例 – us-east-1a 中的 c5.large 的优先级第三,并且有 5 个可用的未使用的 c5.large 容量预留,只需其中的 2 个即可满足目标容量

在启动队列后,您可以运行 describe-capacity-reservations 来查看保留的未使用的 容量预留 的数目。在此示例中,您该看到以下响应,该响应指示已使用所有 c4.large 和 c3.large 容量预留,有 3 个 c5.large 容量预留 未使用。

{ "CapacityReservationId": "cr-111", "InstanceType": "c4.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c3.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "c5.large", "AvailableInstanceCount": 3 }

示例 6:当总目标容量大于未使用的容量预留数量时,使用容量预留和 prioritized 分配策略启动按需实例

可以通过将 容量预留 的使用策略配置为 use-capacity-reservations-first 来将队列配置为在启动 按需实例 时首先使用 按需容量预留。此外,如果未使用的 容量预留 数少于按需目标容量,则将根据选定的按需分配策略启动剩余的按需目标容量。在该示例中,按需分配策略为 prioritized

在该示例中,有 15 个可用的未使用 容量预留。此数目少于队列的 16 个 按需实例 的按需目标容量。

账户在 3 个不同的池中有以下 15 个未使用的 容量预留。每个池中的 容量预留 数由 AvailableInstanceCount 指示。

{ "CapacityReservationId": "cr-111", "InstanceType": "c4.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-111", "InstanceType": "c3.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-111", "InstanceType": "c5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

以下队列配置仅显示该示例的相关配置。按需分配策略为 prioritized,容量预留 的使用策略为 use-capacity-reservations-first。总目标容量为 16,而默认目标容量类型为 on-demand

注意

队列类型必须为 instant。其他队列类型不支持 容量预留。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "c4.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 1.0 }, { "InstanceType": "c3.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 2.0 }, { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1, "Priority": 3.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 16, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "prioritized" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

在使用上述配置创建 instant 队列后,将启动下面的 16 个实例来满足目标容量:

  • us-east-1a 中的 6 个 c4.large 按需实例 – us-east-1a 中的 c4.large 的优先级第一,并且有 5 个可用的未使用 c4.large 容量预留。首先使用 容量预留 启动 5 个 按需实例,并根据按需分配策略(此示例中为 prioritized)启动另一个 个按需实例。

  • us-east-1a 中的 5 个 c3.large 按需实例 – us-east-1a 中的 c3.large 的优先级第二,并且有 5 个可用的未使用的 c3.large 容量预留

  • us-east-1a 中的 5 个 c5.large 按需实例 – us-east-1a 中的 c5.large 的优先级第三,并且有 5 个可用的未使用的 c5.large 容量预留

在启动队列后,您可以运行 describe-capacity-reservations 来查看保留的未使用的 容量预留 的数目。在此示例中,您应看到以下响应,该响应指示所有池中的所有 容量预留 均已使用。

{ "CapacityReservationId": "cr-111", "InstanceType": "c4.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c3.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }

示例 7:使用容量预留和 lowest-price 分配策略启动按需实例

可以通过将 容量预留 的使用策略配置为 use-capacity-reservations-first 来将队列配置为在启动 按需实例 时首先使用 按需容量预留。此外,如果多个实例池具有未使用的 容量预留,则应用选定的按需分配策略。在该示例中,按需分配策略为 lowest-price

在该示例中,有 15 个可用的未使用 容量预留。此数目超过了队列的 12 个 按需实例 的按需容量。

账户在 3 个不同的池中有以下 15 个未使用的 容量预留。每个池中的 容量预留 数由 AvailableInstanceCount 指示。

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

以下队列配置仅显示该示例的相关配置。按需分配策略为 lowest-price,容量预留 的使用策略为 use-capacity-reservations-first。总目标容量为 12,而默认目标容量类型为 on-demand

在此示例中,个按需实例 价格为:

  • m5.large – 每小时 0.096 美元

  • m4.xlarge – 每小时 0.20 美元

  • m4.2xlarge – 每小时 0.40 美元

注意

队列类型必须为 instant。其他队列类型不支持 容量预留。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 12, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

在使用上述配置创建 instant 队列后,将启动下面的 12 个实例来满足目标容量:

  • us-east-1a 中的 5 个 m5.large 按需实例 – us-east-1a 中的 m5.large 的价格最低,并且有 5 个可用的未使用 m5.large 容量预留

  • us-east-1a 中的 5 个 m4.xlarge 按需实例 – us-east-1a 中的 m4.large 的价格第二低,并且有 5 个可用的未使用 m4.xlarge 容量预留

  • us-east-1a 中的 2 个 m4.2xlarge 按需实例 – us-east-1a 中的 m4.2xlarge 的价格第三低,并且有 5 个可用的未使用 m4.2xlarge 容量预留,只需其中的 2 个即可满足目标容量

在启动队列后,您可以运行 describe-capacity-reservations 来查看保留的未使用的 容量预留 的数目。在此示例中,您应看到以下响应,该响应指示已使用所有 m5.large 和 m4.xlarge 容量预留,有 3 个 m4.2xlarge 容量预留 未使用。

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 3 }

示例 8:当总目标容量大于未使用的容量预留数量时,使用容量预留和 lowest-price 分配策略启动按需实例

可以通过将 容量预留 的使用策略配置为 use-capacity-reservations-first 来将队列配置为在启动 按需实例 时首先使用 按需容量预留。此外,如果未使用的 容量预留 数少于按需目标容量,则将根据选定的按需分配策略启动剩余的按需目标容量。在该示例中,按需分配策略为 lowest-price

在该示例中,有 15 个可用的未使用 容量预留。此数目少于队列的 16 个 按需实例 的按需目标容量。

账户在 3 个不同的池中有以下 15 个未使用的 容量预留。每个池中的 容量预留 数由 AvailableInstanceCount 指示。

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

以下队列配置仅显示该示例的相关配置。按需分配策略为 lowest-price,容量预留 的使用策略为 use-capacity-reservations-first。总目标容量为 16,而默认目标容量类型为 on-demand

在此示例中,个按需实例 价格为:

  • m5.large – 每小时 0.096 美元

  • m4.xlarge – 每小时 0.20 美元

  • m4.2xlarge – 每小时 0.40 美元

注意

队列类型必须为 instant。其他队列类型不支持 容量预留。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 16, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

在使用上述配置创建 instant 队列后,将启动下面的 16 个实例来满足目标容量:

  • us-east-1a 中的 6 个 m5.large 按需实例 – us-east-1a 中的 m5.large 的价格最低,并且有 5 个可用的未使用 m5.large 容量预留。首先使用 容量预留 启动 5 个 按需实例,并根据按需分配策略(此示例中为 lowest-price)启动另一个 个按需实例。

  • us-east-1a 中的 5 个 m4.xlarge 按需实例 – us-east-1a 中的 m4.large 的价格第二低,并且有 5 个可用的未使用 m4.xlarge 容量预留

  • us-east-1a 中的 5 个 m4.2xlarge 按需实例 – us-east-1a 中的 m4.2xlarge 的价格第三低,并且有 5 个可用的未使用 m4.2xlarge 容量预留

在启动队列后,您可以运行 describe-capacity-reservations 来查看保留的未使用的 容量预留 的数目。在此示例中,您应看到以下响应,该响应指示所有池中的所有 容量预留 均已使用。

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 0 }