本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 版本的詳細資訊。