メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

スポットフリート設定の例

以下の例で示しているのは、スポットフリートリクエストを作成するための request-spot-fleet コマンドで使用できる起動設定です。詳細については、「スポットフリートリクエストの作成」を参照してください。

例 1: リージョン内で最低価格のアベイラビリティーゾーンまたはサブネットでスポットインスタンスを起動する

以下の例では、アベイラビリティーゾーンまたはサブネットを使用しない 1 つの起動仕様を指定しています。ご使用のアカウントが EC2-VPC のみをサポートしている場合、スポットフリートは、デフォルトのサブネットがある最低価格のアベイラビリティーゾーンでインスタンスを起動します。 ご使用のアカウントが EC2-Classic をサポートしている場合、スポットフリートは、最低価格のアベイラビリティーゾーンの EC2-Classic でインスタンスを起動します。 お支払い価格がリクエストに指定されたスポット料金を上回ることはありません。

Copy
{ "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

例 2: 指定したリスト内で最低価格のアベイラビリティーゾーンまたはサブネットでスポットインスタンスを起動する

以下の例では、アベイラビリティーゾーン/サブネットは異なるがインスタンスタイプおよび AMI は同じ、2 つの起動仕様を指定しています。

アベイラビリティーゾーン

ご使用のアカウントが EC2-VPC のみをサポートしている場合、スポットフリートは指定された最低価格のアベイラビリティーゾーンのデフォルトのサブネットでインスタンスを起動します。 ご使用のアカウントが EC2-Classic をサポートしている場合、スポットフリートは指定された最低価格のアベイラビリティーゾーンでインスタンスを起動します。

Copy
{ "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-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" } } ] }

Subnets

デフォルトのサブネットまたはデフォルト以外のサブネットを指定できますが、デフォルト以外のサブネットは、デフォルトの VPC またはデフォルト以外の VPC 内から選択できます。スポットサービスは、最低価格のアベイラビリティーゾーンにあるいずれかのサブネットでインスタンスを起動します。

1 つのスポットフリートリクエストで、同じアベイラビリティーゾーンから複数の異なるサブネットを指定することはできないことに注意してください。

Copy
{ "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-a61dafcf, subnet-65ea5f08", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

インスタンスがデフォルトの VPC で起動される場合は、デフォルトでパブリック IPv4 アドレスが割り当てられます。インスタンスがデフォルト以外の VPC で起動される場合は、デフォルトでパブリック IPv4 アドレスは割り当てられません。起動仕様でネットワークインターフェイスを使用して、デフォルト以外の VPC で起動されるインスタンスにパブリック IPv4 アドレスを割り当てます。ネットワークインターフェイスの指定時、ネットワークインターフェイスを使用してサブネット ID とセキュリティグループ ID を含める必要があります。

Copy
... { "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" } } ...

例 3: 指定したリスト内で最低価格のインスタンスタイプを使用してスポットインスタンスを起動する

次の例では、同じ AMI と アベイラビリティーゾーンまたはサブネットで、複数の異なるインスタンスタイプを使用する 2 つの起動設定を指定します。 スポットフリートは、最低価格のインスタンスタイプを使用してインスタンスを起動します。

アベイラビリティーゾーン

Copy
{ "SpotPrice": "1.00", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "cc2.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

サブネット

Copy
{ "SpotPrice": "1.00", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "cc2.8xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

例 4. リクエストするスポット料金を上書きする

個別の起動条件のためにスポット料金を指定できる機能は、入札プロセルにおいてさらなるコントロールを提供します。 次に、3 つの起動条件において 2 つ分の個別スポット料金を指定するために、リクエストするスポット料金を上書きする例を示します。リクエストするスポット料金は、個別のスポット料金を指定しないすべての起動条件に適用されることにご注意ください。 スポットフリートは、最低価格のインスタンスタイプを使用してインスタンスを起動します。

アベイラビリティーゾーン

Copy
{ "SpotPrice": "1.00", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.10" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.20" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

サブネット

Copy
{ "SpotPrice": "1.00", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.10" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.20" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

例 5: 分散配分戦略を使用してスポットフリートを起動する

次の例では、diversified の配分戦略を使用します。 これらの起動仕様では、インスタンスタイプは異なりますが、AMI およびアベイラビリティーゾーン/サブネットは同じです。スポットフリートは、3 つの起動条件について 30 個のインスタンスを分配します。これで、各タイプごとに 10 個のインスタンスが配分されます。 詳細については、「スポットのフリートの配分戦略」を参照してください。

アベイラビリティーゾーン

Copy
{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

サブネット

Copy
{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-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" } ] }

例 6: インスタンスの重み付けを使用してスポットフリートを起動する

次の例では、インスタンス分量指定を使っています。これは、入札価格が 1 インスタンス時間当たりではなく、1 ユニット時間当たりであることを意味します。 それぞれの起動設定には、異なるインスタンスタイプおよび異なる分量がリストされます。 スポットフリートは 1 ユニット時間当たり最低価格のインスタンスタイプを選択します。 スポットフリートでは、ターゲット容量をインスタンス分量で割ることで起動するスポットインスタンスの数を計算します。 その結果が整数でなければ、スポットフリートはその数を次の整数に切り上げ、これによりフリートのサイズがターゲット容量以上になります。

r3.2xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、4 つをプロビジョニングします (3.33 インスタンスまで 20 を 6 で割り、そして残りの 4 つのインスタンスを切り上げます)。

c3.xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、7 つをプロビジョニングします (6.66 インスタンスまで 20 を 3 で割り、そして残りの 7 つのインスタンスを切り上げます)。

詳細については、「スポットフリートインスタンスの重み付け」を参照してください。

アベイラビリティーゾーン

Copy
{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 3 } ] }

サブネット

Copy
{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d", "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "SubnetId": "subnet-1a2b3c4d", "WeightedCapacity": 3 } ] }

優先度

また、アベイラビリティーゾーンまたはサブネットに優先度を与えるためにも、インスタンス分量指定を使用できます。 たとえば、次の起動条件はほぼ同じですが、異なるサブネットと分量を指定しています。 スポットフリートは WeightedCapacity に対して最大値を付ける条件を見つけ出して、そのサブネット内で最低価格のスポットインスタンスプールにリクエストをプロビジョニングすることを試みます (2 つ目の起動条件には分量指定が含まれないため、デフォルトで値 1 になることにご留意ください)。

Copy
{ "SpotPrice": "0.42", "TargetCapacity": 40, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-bb3337d" } ] }