教程:在容量块中启动实例
本教程将指导您完成必须执行的步骤,以便 EC2 实例集在容量块中启动实例。有关容量块的更多信息,请参阅 适用于 ML 的容量块。
您可以使用类型为 instant 的 EC2 实例集在容量块中启动实例。有关更多信息,请参阅 使用类型为 'instant' 的 EC2 队列。
在大多数情况下,EC2 实例集请求的目标容量应小于或等于您所定位的容量块预留的可用容量。无法满足超过容量块预留限制的目标容量请求。如果目标容量请求超过容量块预留的限制,则对于超出容量块预留限制的容量,您将收到容量不足异常。
注意
对于容量块,EC2 实例集将不会回退到为剩余的所需目标容量启动按需型实例。
如果 EC2 实例集无法满足可用容量块预留中请求的目标容量,EC2 Fleet 将尽可能多地满足容量,并返回其能够启动的实例。您可以再次调用 EC2 实例集,直到所有实例都已预调配。
配置 EC2 实例集请求后,您必须等到容量块预留的开始日期。如果您请求 EC2 实例集在尚未启动的容量块中启动,则会收到容量不足错误。
在容量块预留变为活动状态后,您可以调用 EC2 实例集 API,并根据您选择的参数将实例预调配到您的容量块中。在容量块中运行的实例将继续运行,直到您通过单独的 Amazon EC2 API 调用停止或终止这些实例,或者直到 Amazon EC2 在容量块预留结束时终止这些实例。
注意事项
-
不支持在同一
CreateFleet
请求中有多个容量块。 -
不支持在使用
OnDemandTargetCapacity
或SpotTargetCapacity
的同时将capacity-block
设置为DefaultTargetCapacity
。 -
如果将
DefaultTargetCapacityType
设置为capacity-block
,则无法提供OnDemandOptions::CapacityReservationOptions
。将会出现异常。
创建启动模板
启动模板 ID 将在下一个步骤中使用。有关更多信息,请参阅 创建启动模板。
要配置启动模板,对于 InstanceMarketOptionsRequest
,请将 MarketType
设置为 capacity-block
。通过设置 CapacityReservationID
参数来指定您要定位的容量块预留 ID。
创建 EC2 队列
为其 EC2 实例集创建一个具有以下配置的文件,文件名为 config.json
。在以下示例中,将资源标识符替换为您自己的资源标识符。
{
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "CBR-launch-template",
"Version": "1"
},
"Overrides": [
{
"InstanceType": "p5.48xlarge",
"AvailabilityZone": "us-east-1a"
},
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 10,
"DefaultTargetCapacityType": "capacity-block"
},
"Type": "instant"
}
使用以下 create-fleet 命令。
aws ec2 create-fleet \ --cli-input-json file://config.json
有关更多信息,请参阅 创建 EC2 队列。