AWS::EC2::SpotFleet - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::EC2::SpotFleet

指定 Spot 队列请求。Spot 队列请求包含用于启动一个队列或一组实例的配置信息。

Spot 队列请求指定队列的总目标容量和按需目标容量。Amazon EC2 计算总容量和按需容量之间的差异,并将差异作为 Spot 容量启动。

Spot 队列请求可包含多个启动规范(因实例类型、AMI、可用区或子网而异)。

默认情况下,Spot 队列在 Spot 池中请求 Spot 实例,其中每单位价格最低。每个启动规范均可包含自己的实例权重,该实例权重反映了实例类型对应用程序工作负载的价值。

或者,您可以指定 Spot 队列在其启动规范中包含的 Spot 池之间分配目标容量。通过确保 Spot 队列中的 Spot 实例位于不同的 Spot 池中,您可以提高队列的可用性。

您可以为 Spot 实例指定标签。您不能标记 Spot 队列请求中的其他资源类型,因为仅 instance 资源类型受支持。

有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的 Spot 队列请求

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::EC2::SpotFleet", "Properties" : { "SpotFleetRequestConfigData" : SpotFleetRequestConfigData } }

YAML

Type: AWS::EC2::SpotFleet Properties: SpotFleetRequestConfigData: SpotFleetRequestConfigData

属性

SpotFleetRequestConfigData

描述 Spot 队列请求的配置。

必需:是

类型SpotFleetRequestConfigData

Update requires: Some interruptions

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 Spot 队列的 ID。

For more information about using the Ref function, see Ref.

示例

Spot 队列

以下示例指定带有两个启动规范的 Spot 队列。由于权重容量相同,Amazon EC2 会为每个规范启动相同数量的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的 Spot 队列的工作方式

JSON

"SpotFleet": { "Type": "AWS::EC2::SpotFleet", "Properties": { "SpotFleetRequestConfigData": { "IamFleetRole": { "Fn::GetAtt": [ "IAMFleetRole", "Arn"] }, "SpotPrice": "1000", "TargetCapacity": { "Ref": "TargetCapacity" }, "LaunchSpecifications": [ { "EbsOptimized": "false", "InstanceType": { "Ref": "InstanceType" }, "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" }, { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] } ]}, "SubnetId": { "Ref": "Subnet1" }, "WeightedCapacity": "8" }, { "EbsOptimized": "true", "InstanceType": { "Ref": "InstanceType" }, "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" }, { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] } ]}, "Monitoring": { "Enabled": "true" }, "SecurityGroups": [ { "GroupId": { "Fn::GetAtt": [ "SG0", "GroupId" ] } } ], "SubnetId": { "Ref": "Subnet0" }, "IamInstanceProfile": { "Arn": { "Fn::GetAtt": [ "RootInstanceProfile", "Arn" ] } }, "WeightedCapacity": "8" } ] } } }

YAML

SpotFleet: Type: AWS::EC2::SpotFleet Properties: SpotFleetRequestConfigData: IamFleetRole: !GetAtt [IAMFleetRole, Arn] SpotPrice: '1000' TargetCapacity: Ref: TargetCapacity LaunchSpecifications: - EbsOptimized: 'false' InstanceType: Ref: InstanceType ImageId: Fn::FindInMap: - AWSRegionArch2AMI - Ref: AWS::Region - Fn::FindInMap: - AWSInstanceType2Arch - Ref: InstanceType - Arch SubnetId: Ref: Subnet1 WeightedCapacity: '8' - EbsOptimized: 'true' InstanceType: Ref: InstanceType ImageId: Fn::FindInMap: - AWSRegionArch2AMI - Ref: AWS::Region - Fn::FindInMap: - AWSInstanceType2Arch - Ref: InstanceType - Arch Monitoring: Enabled: 'true' SecurityGroups: - GroupId: Fn::GetAtt: - SG0 - GroupId SubnetId: Ref: Subnet0 IamInstanceProfile: Arn: Fn::GetAtt: - RootInstanceProfile - Arn WeightedCapacity: '8'

另请参阅