RequestSpotFleet で を使用する CLI - AWS SDK コード例

AWS Doc SDK Examples GitHub リポジトリには他にも AWS SDK例があります。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

RequestSpotFleet で を使用する CLI

以下のコード例は、RequestSpotFleet の使用方法を示しています。

CLI
AWS CLI

最低料金でサブネット内のスポットフリートをリクエストするには

この例では、サブネットによってのみ異なる 2 つの起動仕様を持つスポットフリートリクエストを作成します。スポットフリートは、指定されたサブネット内のインスタンスを最低料金で起動します。インスタンスがデフォルトの で起動されるとVPC、デフォルトでパブリック IP アドレスを受け取ります。インスタンスがデフォルト以外の で起動された場合VPC、デフォルトではパブリック IP アドレスは受信されません。

スポットフリートリクエストでは、同じアベイラビリティーゾーンから異なるサブネットを指定することはできません。

コマンド:

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" }

アベイラビリティーゾーンで最低料金でスポットフリートをリクエストするには

この例では、アベイラビリティーゾーンによってのみ異なる 2 つの起動仕様を持つスポットフリートリクエストを作成します。スポットフリートは、指定されたアベイラビリティーゾーン内のインスタンスを最低料金で起動します。アカウントが EC2-VPC のみをサポートしている場合、Amazon はアベイラビリティーゾーンのデフォルトサブネットでスポットインスタンスEC2を起動します。アカウントが EC2-Classic をサポートしている場合、Amazon はアベイラビリティーゾーンの EC2-Classic でインスタンスEC2を起動します。

コマンド:

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" } } ] }

サブネットでスポットインスタンスを起動し、パブリック 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" } } ] }

分散配分戦略を使用してスポットフリートをリクエストするには

この例では、分散配分戦略を使用して 30 個のインスタンスを起動するスポットフリートリクエストを作成します。起動仕様はインスタンスタイプによって異なります。スポットフリートは、各タイプのインスタンスが 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 ユーザーガイド」の「スポットフリートリクエスト」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスRequestSpotFleet」の「」を参照してください。

PowerShell
のツール PowerShell

例 1: この例では、指定したインスタンスタイプの最低料金でアベイラビリティーゾーンにスポットフリートリクエストを作成します。アカウントが EC2-VPC のみをサポートしている場合、スポットフリートは、デフォルトのサブネットを持つ低価格のアベイラビリティーゾーンでインスタンスを起動します。アカウントが EC2-Classic をサポートしている場合、スポットフリートは低価格のアベイラビリティーゾーンで EC2-Classic でインスタンスを起動します。支払う料金は、リクエストに対して指定されたスポット料金を超えないことに注意してください。

$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 詳細については、「 コマンドレットリファレンスRequestSpotFleet」の「」を参照してください。 AWS Tools for PowerShell