RequestSpotFleet 搭配 CLI 使用 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

RequestSpotFleet 搭配 CLI 使用

下列程式碼範例示範如何使用 RequestSpotFleet

CLI
AWS CLI

以最低價格請求子網路中的 Spot 機群

此範例命令會建立具有兩個啟動規格的 Spot 機群請求,這些規格只會因子網路而有所不同。Spot 機群會以最低價格啟動指定子網路中的執行個體。如果執行個體是在預設的 VPC 中啟動,則預設會收到公有 IP 地址。如果在非預設 VPC 中啟動執行個體,則預設不會收到公有 IP 地址。

請注意,您無法在 Spot 機群請求中指定與相同可用區域不同的子網路。

命令:

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json:

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

輸出:

{ "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

以最低價格請求可用區域中的 Spot 機群

此範例命令會建立具有兩個啟動規格的 Spot 機群請求,這些啟動規格只會因可用區域而有所不同。Spot 機群會以最低價格在指定的可用區域中啟動執行個體。如果您的帳戶僅支援 EC2-VPC,Amazon EC2 會在可用區域的預設子網路中啟動 Spot 執行個體。如果您的帳戶支援 EC2-Classic,Amazon EC2 會在可用區域中以 EC2-Classic 啟動執行個體。

命令:

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json:

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a, us-west-2b" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

在子網路中啟動 Spot 執行個體並為其指派公有 IP 地址

此範例命令會將公有地址指派給在非預設 VPC 中啟動的執行個體。請注意,當您指定網路介面時,必須使用網路介面包含子網路 ID 和安全群組 ID。

命令:

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json:

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" } } ] }

使用多樣化配置策略請求 Spot 機群

此範例命令會建立 Spot 機群請求,使用多樣化的配置策略啟動 30 個執行個體。啟動規格因執行個體類型而異。Spot 機群會將執行個體分散到啟動規格,因此每種類型都有 10 個執行個體。

命令:

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json:

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

如需詳細資訊,請參閱 Amazon Elastic Compute Cloud 使用者指南中的 Spot Fleet 請求。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RequestSpotFleet

PowerShell
for PowerShell 工具

範例 1:此範例會在可用區域中建立 Spot 機群請求,其價格為指定執行個體類型的最低。如果您的帳戶僅支援 EC2-VPC,Spot 機群會在具有預設子網路的最低價可用區域中啟動執行個體。如果您的帳戶支援 EC2-Classic,Spot 機群會在價格最低的可用區域中以 EC2-Classic 啟動執行個體。請注意,您支付的價格不會超過請求的指定 Spot 價格。

$sg = New-Object Amazon.EC2.Model.GroupIdentifier $sg.GroupId = "sg-12345678" $lc = New-Object Amazon.EC2.Model.SpotFleetLaunchSpecification $lc.ImageId = "ami-12345678" $lc.InstanceType = "m3.medium" $lc.SecurityGroups.Add($sg) Request-EC2SpotFleet -SpotFleetRequestConfig_SpotPrice 0.04 ` -SpotFleetRequestConfig_TargetCapacity 2 ` -SpotFleetRequestConfig_IamFleetRole arn:aws:iam::123456789012:role/my-spot-fleet-role ` -SpotFleetRequestConfig_LaunchSpecification $lc
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 RequestSpotFleet

如需 AWS SDK 開發人員指南和程式碼範例的完整清單,請參閱 使用 建立 Amazon EC2 資源 AWS SDK。本主題也包含有關入門的資訊,以及先前 SDK 版本的詳細資訊。