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

スポットフリート リクエスト

スポットフリート を使用するには、目標とするキャパシティー、オプションのオンデマンド部分、インスタンスの 1 つ以上の起動仕様、支払う予定のある上限価格などを指定した スポットフリート リクエストを作成します。Amazon EC2 は、スポット料金の変更に応じて スポットフリート の目標容量を維持しようとします。詳細については、「スポットフリート の詳細」を参照してください。

スポットフリート リクエストには、request および maintain の 2 つのタイプがあります。スポットフリート を作成し、希望する容量のワンタイムリクエストを送信するか、ターゲット容量の継続した維持を要求します。どちらのリクエストタイプも、スポットフリート の分散戦略の恩恵を受けす。

ワンタイムリクエストを作成すると、スポットフリート は必要なリクエストを行いますが、容量が低下した場合は スポットインスタンス の補充を試みません。使用可能な容量がない場合、スポットフリート は代替スポットプールでリクエストを送信しません。

ターゲット容量を維持するために、スポットフリート はこのターゲット容量を満たすのに必要なリクエストを行い、中断されたインスタンスを自動的に補充します。

送信後にワンタイムリクエストのターゲット容量を変更することはできません。ターゲット容量を変更するには、リクエストを変更し、新しいリクエストを送信します。

スポットフリート リクエストは、期限切れになるかお客様によってキャンセルされるまで、アクティブのままになります。スポットフリート リクエストのキャンセル時には、スポットフリート のキャンセルによって スポットフリート の スポットインスタンス を終了するかどうかを指定できます。

各起動仕様には、Amazon EC2 によるインスタンスの起動に必要な情報 (AMI、インスタンスタイプ、サブネットまたはアベイラビリティーゾーン、そして 1 つ以上のセキュリティグループ) を指定します。

スポットフリート リクエストの状態

スポットフリート リクエストは、次に示す状態のいずれかになります。

  • submitted – スポットフリート リクエストは評価中です。Amazon EC2 は目標数の スポットインスタンスを起動する準備をしています。

  • active – スポットフリートは検証済みです。Amazon EC2 は実行中の スポットインスタンス をターゲット数分、確保しようとしています。リクエストは、変更またはキャンセルされるまで、この状態のままになります。

  • modifying – スポットフリート リクエストは変更中です。リクエストは、変更が完全に処理されるか、スポットフリート がキャンセルされるまで、この状態のままになります。ワンタイム request を変更することはできません。この状態は、そのようなスポットリクエストには適用されません。

  • cancelled_running – スポットフリート はキャンセルされ、追加の スポットインスタンス は起動されません。その既存の スポットインスタンス は、中断または終了されるまで実行され続けます。リクエストは、すべてのインスタンスが中断されるか終了されるまで、この状態のままになります。

  • cancelled_terminating – スポットフリート はキャンセルされました。スポットインスタンス は終了中です。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになります。

  • cancelled – スポットフリート はキャンセルされました。実行中の スポットインスタンス はありません。スポットフリート リクエストは、そのインスタンスが終了されてから 2 日後に削除されます。

次の図は、リクエストの状態の遷移を示しています。スポットフリート の制限を超えた場合、リクエストはすぐにキャンセルされます。


					スポットフリート リクエストの状態

スポットフリート の前提条件

Amazon EC2 コンソールを使用して スポットフリート を作成した場合、お客様の代わりにインスタンスのリクエスト、起動、削除、タグ付けを行う権限を スポットフリート に与える aws-ec2-spot-fleet-tagging-role という名前のロールが作成されます。このロールは、スポットフリート リクエストを作成するときに選択されます。代わりに AWS CLI または API を使用する場合、このロールが存在していることを確認する必要があります。スポットインスタンス リクエストウィザード (ウィザードの 2 ページ目に進むとロールが作成されます) または、次のように、 IAM コンソールを使用できます。

スポットフリート の IAM ロールを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. [Select type of trusted entity] ページの [AWS Service] で [EC2]、[EC2 - Spot Fleet Tagging]、[Next: Permissions] の順に選択します。

  4. [Attached permissions policy] ページで、[Next: Review] を選択します。

  5. [Review] ページで、ロールの名前 (たとえば、aws-ec2-spot-fleet-tagging-role) を入力し、[Create role] を選択します。

スポットフリート ユーザーと IAM ユーザー

IAM ユーザーが スポットフリート を作成または管理する場合、必ず次のようにして必要なアクセス許可を付与してください。

IAM ユーザーに スポットフリート のアクセス許可を付与するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで、[Policies]、[Create policy] の順に選択します。

  3. [Create policy] ページで、[JSON] を選択し、テキストを以下に置き換えて [Review policy] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:PassRole", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    ec2:* は、IAM ユーザーにすべての Amazon EC2 API アクションを呼び出すアクセス許可を付与します。特定の Amazon EC2 API アクションに制限するには、代わりにこれらのアクションを指定します。

    IAM ユーザーは、既存の IAM ロールを列挙する iam:ListRoles アクション、スポットフリート ロールを指定する iam:PassRole アクション、および既存のインスタンスプロファイルを列挙する iam:ListInstanceProfiles アクションを呼び出すには、アクセス許可が必要です。

    (オプション) IAM ユーザーが IAM コンソールを使用してロールまたはインスタンスプロファイルを作成できるようにするには、次のアクションをポリシーに追加する必要もあります。

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  4. [Review policy] ページでポリシー名と説明を入力し、[Create policy] を選択します。

  5. ナビゲーションペインで [Users] を選択し、ユーザーを選択します。

  6. [Permissions]、[Add permissions] の順に選択します。

  7. [Attach existing policies directly] を選択します。以前に作成したポリシーを選択し、[Next: Review] を選択します。

  8. [Add permissions] を選択します。

スポットフリート ヘルスチェック

スポットフリート は、2 分ごとにフリートの スポットインスタンス のヘルスステータスをチェックします。インスタンスのヘルスステータスは healthy または unhealthy です。スポットフリート は、Amazon EC2 が提供するステータスチェックを使用してインスタンスの正常性状態を判断します。インスタンスステータスチェックとシステムヘルスチェックのいずれかのステータスが、連続した 3 回のヘルスチェックで impaired である場合、インスタンスのヘルスステータスは unhealthy になります。それ以外の場合、ヘルスステータスは healthy になります。詳細については、「インスタンスのステータスチェック」を参照してください。

異常なインスタンスは置き換えるよう スポットフリート を設定できます。ヘルスチェックの置換を有効にすると、ヘルスステータスが unhealthy と報告された後でインスタンスが置き換えられます。異常なインスタンスを置き換えている間、数分間にわたり スポットフリート がターゲット容量を下回る場合があります。

要件

  • ヘルスチェックの置換は、1 回限りの スポットフリート ではなく、ターゲット容量を維持する スポットフリート でのみサポートされます。

  • 作成時のみ異常なインスタンスを置き換えるよう スポットフリート を設定できます。

  • IAM ユーザーは、ec2:DescribeInstanceStatus アクションを呼び出すアクセス許可を持っている場合のみ、ヘルスチェックの置換を使用できます。

スポットフリート リクエストの準備

スポットフリート リクエストを作成する前に、「ベストプラクティス」を確認してください。スポットフリート リクエストを計画するときにこれらのベストプラクティスを使用して、できるだけ低価格でインスタンスのタイプをプロビジョニングできるようにします。また、次のことをお勧めします。

  • 目的のターゲット容量のワンタイムリクエストを送信する スポットフリート と、ターゲット容量の継続した維持を行うスポットフリートのどちらを作成するかを決定します。

  • アプリケーションの要件を満たすインスタンスタイプを決定します。

  • スポットフリート リクエストの目標容量を決定します。インスタンスまたはカスタムユニットでターゲット容量を設定できます。詳細については、「スポットフリート インスタンスの分量指定」を参照してください。

  • スポットフリート のターゲットキャパシティーのどの部分がオンデマンドキャパシティーとなるかを決定します。オンデマンドキャパシティーに対して 0 を指定できます。

  • インスタンス分量指定を使用している場合は、ユニット当りの料金を決定します。インスタンス時間当りの料金の計算は、インスタンス時間当たりの料金をそのインスタンスが表すユニット数 (または分量) で割って算出しますインスタンス分量指定を使用する場合、ユニット当りのデフォルトの料金は 1 インスタンス時間当りの料金となります。

  • スポットフリート のリクエストに対して可能なオプションを確認します。詳細については、『AWS CLI Command Reference』の request-spot-fleet コマンドを参照してください。その他の例については、「スポットフリート 設定例」を参照してください。

スポットフリート リクエスト用のサービスにリンクされたロール

スポットフリート をリクエストすると、Amazon EC2 はサービスにリンクされたロールを作成します。サービスにリンクされたロールには、Amazon EC2 がユーザーに代わって他の AWS サービスを呼び出すために必要なすべての権限が含まれます。詳細については、『IAM ユーザーガイド』の「サービスにリンクされたロールの使用」を参照してください。

Amazon EC2 は、[AWSServiceRoleForEC2SpotFleet] というサービスにリンクされたロールを使用して、次のアクションを実行します。

  • ec2:RequestSpotInstances - スポットインスタンス のリクエスト

  • ec2:TerminateInstances - スポットインスタンス の終了

  • ec2:DescribeImages - スポットインスタンス の Amazon Machine Image (AMI) の表示

  • ec2:DescribeInstanceStatus - スポットインスタンス のステータスの表示

  • ec2:DescribeSubnets - スポットインスタンス のサブネットの表示

  • ec2:CreateTags - スポットインスタンス へのシステムタグの追加

スポットフリート をリクエストすると、Amazon EC2 は [AWSServiceRoleForEC2Spot] ロールを作成します。詳細については、「スポットインスタンス リクエスト用のサービスにリンクされたロール」を参照してください。

Amazon EC2 がこのサービスにリンクされたロールのサポートを開始した 2017 年 11 月以前にアクティブな スポットフリート リクエストを行った場合は、Amazon EC2 が AWS アカウントで [AWSServiceRoleForEC2SpotFleet] ロールを作成しています。詳細については、『IAM ユーザーガイド』の「AWS アカウントに新しいロールが表示される」を参照してください。

AWS CLI または API を使って スポットフリート を作成する前にこのロールが存在していることを確認します。ロールを作成するには、IAM コンソールを次のように使用します。

スポットフリート の IAM ロールを作成するには (コンソール)

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. [ロールの作成] を選択します。

  4. [Select type of trusted entity] ページで、[EC2]、[EC2 - Spot Fleet]、[Next: Permissions] の順に選択します。

  5. 次のページで、[Next:Review (次の手順: 確認)] を選択します。

  6. [確認] ページで、[ロールの作成] を選択します。

スポットフリート を使用する必要がなくなった場合は、[AWSServiceRoleForEC2SpotFleet] ロールを削除することをお勧めします。このロールがアカウントから削除された後で、Amazon EC2 をリクエストすると、スポットフリート はロールを再度作成します。

スポットフリート リクエストを作成する

AWS マネジメントコンソール を使用して、アプリケーションまたはタスクのニーズのみと最低限のコンピューティング仕様を選択し、スポットフリート を迅速に作成します。Amazon EC2 はユーザーのニーズに最適なフリートを設定し、ベストプラクティスに従います。詳細については、「スポットフリート リクエストをすばやく作成する (コンソール)」を参照してください。それ以外の場合は、デフォルト設定のいれかを変更できます。詳細については、「定義済みパラメータを使用して スポットフリート を作成する (コンソール)」を参照してください。

スポットフリート リクエストをすばやく作成する (コンソール)

スポットフリート リクエストをすばやく作成するには、以下の手順を実行します。

推奨設定を使用して スポットフリート リクエストを作成するには (コンソール)

  1. スポットコンソール (https://console.aws.amazon.com/ec2spot) を開きます。

  2. スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [Get started] を選択します。それ以外の場合は、[スポットインスタンス のリクエスト] を選択します。

  3. [Tell us your application or task need] については、[Flexible workloads]、[Load balancing workloads]、[Big data workloads]、または [Defined duration workloads] を選択します。

  4. [Configure your instances] の下の [Minimum compute unit] で、アプリケーションまたはタスクで必要な最低限のハードウェア仕様 (vCPU、メモリ、ストレージ) を選択して、[as specs] または [as an instance type] を指定します。

    • [as specs] については、必要な vCPU 数とメモリ量を指定します。

    • [as an instance type] については、デフォルトのインスタンスタイプをそのまま使用するか、[Change instance type] を選択して別のインスタンスタイプを選択します。

  5. [Tell us how much capacity you need] の下の [Total target capacity] で、ターゲット容量を要求するための単位数を指定します。インスタンスまたは vCPU を選択できます。

  6. アプリケーションまたはタスクの選択に基づいた推奨される [Fleet request settings] を確認して、[Launch] を選択します。

定義済みパラメータを使用して スポットフリート を作成する (コンソール)

定義するパラメータを使用して、スポットフリート を作成できます。

定義済みパラメータを使用して スポットフリート リクエストを作成するには (コンソール)

  1. スポットコンソール (https://console.aws.amazon.com/ec2spot) を開きます。

  2. スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [Get started] を選択します。それ以外の場合は、[スポットインスタンス のリクエスト] を選択します。

  3. [Tell us your application or task need] については、[Flexible workloads]、[Load balancing workloads]、[Big data workloads]、または [Defined duration workloads] を選択します。

  4. [Configure your instances] で、以下を実行します。

    1. (オプション) [スポットフリート] [Launch template] で、起動テンプレートを選択します。起動テンプレートでは Amazon Machine Image (AMI) を指定する必要があります。起動テンプレートを指定した場合、スポットフリート を使用して AMI を上書きできないためです。

      重要

      [オプションのオンデマンド部分] を指定する場合、起動テンプレートを選択する必要があります。

    2. [AMI] では、AWS に用意されたベーシック AMI のいずれかを選択するか、[Search for AMI] を選択してユーザーコミュニティの AMI、AWS Marketplace の AMI、または独自の AMI を使用します。

    3. [Minimum compute unit] で、アプリケーションまたはタスクで必要な最低限のハードウェア仕様 (vCPU、メモリ、ストレージ) を選択して、[as specs] または [as an instance type] を指定します。

      • [as specs] については、必要な vCPU 数とメモリ量を指定します。

      • [as an instance type] については、デフォルトのインスタンスタイプをそのまま使用するか、[Change instance type] を選択して別のインスタンスタイプを選択します。

    4. (オプション) [Network] で、既存の VPC を使用するか、新しい VPC を作成するかを選択します。

      [既存の VPC] VPC を選択します。

      [新しい VPC] [新しい VPC の作成] を選択して Amazon VPC コンソールにアクセスします。完了したら、ウィザードに戻ってリストを更新します。

    5. (オプション) [Availability Zones] では、AWS で自動的に スポットインスタンス のアベイラビリティーゾーンを選択するか、または 1 つ以上のアベイラビリティーゾーンを指定します。

      アベイラビリティーゾーンに複数のサブネットがある場合、[Subnet] から適切なサブネットを選択します。サブネットを追加するには、[Create new subnet] を選択して Amazon VPC にアクセスします。完了したら、ウィザードに戻ってリストを更新します。

    6. (オプション) [Key pair name] で、既存のキーペアを使用するか、新しいキーペアを作成するかを選択します。

      [Existing key pair] キーペアを選択します。

      [New key pair] [Create new key pair] を選択して Amazon VPC コンソールにアクセスします。完了したら、ウィザードに戻ってリストを更新します。

  5. (オプション) [Additional configurations] で、以下を実行します。

    1. (オプション) ストレージを追加するには、インスタンスタイプに応じて追加のインスタンスストアボリュームまたは Amazon EBS ボリュームを指定します。

    2. (オプション) Amazon EBS 最適化を有効にするには、[EBS-optimized] で [Launch EBS-optimized instances] を選択します。

    3. (オプション) インスタンス用の一時ブロックレベルストレージを追加するには、[Instance store] で [Attach at launch] を選択します。

    4. (オプション) デフォルトでは、インスタンスに対して基本モニタリングが有効になります。詳細モニタリングを有効にするには、[Monitoring (モニタリング)] で [Enable CloudWatch detailed monitoring (CloudWatch 詳細モニタリングを有効化)] を選択します。

    5. (オプション) 異常なインスタンスを置き換えるには、[Health check (ヘルスチェック)] で [Replace unhealthy instances (異常なインスタンスを置き換える)] を選択します。このオプションを有効にするには、まず [Maintain target capacity (ターゲット容量を維持する)] を選択する必要があります。

    6. (オプション) ハードウェア専有 スポットインスタンス を実行するには、[テナンシー] で [専有 - ハードウェア専有インスタンスの実行] を選択します。

    7. (オプション) [Security groups] で、1 つ以上のセキュリティグループを選択するか、新しいセキュリティグループを作成します。

      [Existing security group] 1 つ以上のセキュリティグループを選択します。

      [New security group] [Create new security group] を選択して、Amazon VPC コンソールに移動します。完了したら、ウィザードに戻ってリストを更新します。

    8. (オプション) インスタンスにインターネットからアクセスできるようにするには、[Auto-assign IPv4 Public IP] で [Enable] を選択します。

    9. (オプション) IAM ロールを指定して スポットインスタンス を起動するには、[IAM instance profile] でロールを選択します。

    10. (オプション) 起動スクリプトを実行するには、スクリプトを [User data] にコピーします。

    11. (オプション) タグを追加するには、[Add new tag] を選択し、そのタグのキーと値を入力します。各タグについて、これを繰り返します。

  6. [Tell us how much capacity you need] で、以下を実行します。

    1. [Total target capacity] で、ターゲットキャパシティーにリクエストする単位数を指定します。インスタンスまたは vCPU を選択できます。ターゲット容量を 0 に指定して後で容量を追加できるようにするには、[Maintain target capacity] を選択します。

    2. (オプション) [Optional On-Demand portion] でリクエストするオンデマンド単位数を指定します。この数は、[Total target capacity] より少なくする必要があります。Amazon EC2 は差異を計算し、この差をリクエストするスポット単位に割り当てます。

      重要

      オプションのオンデマンド部分を指定する場合、最初に起動テンプレートを選択する必要があります。

    3. (オプション) デフォルトでは、スポットサービスは中断されると スポットインスタンス を削除します。ターゲット容量を維持するには、[Maintain target capacity] を選択します。これで、中断時に スポットインスタンス を終了、停止、または休止するように指定できます。これを行うには、[Interruption behavior] から対応するオプションを選択します。

  7. [Fleet request settings] で、以下を実行します。

    1. アプリケーションまたはタスクの選択に基づいて、フリートリクエストおよびフリートの配分戦略を確認します。インスタンスタイプまたは配分戦略を変更するには、[Apply recommendations] をオフにします。

    2. (オプション) インスタンスタイプを削除するには、[Fleet request] で [Remove] を選択します。インスタンスタイプを追加するには、[Select instance types] を選択します。

    3. [オプション] [Fleet allocation strategy] で、お客様のニーズに合った戦略を選択します。詳細については、「スポットインスタンス の配分戦略」を参照してください。

  8. [Additional request details] で、以下を実行します。

    1. 追加リクエストの詳細を確認します。変更するには、[Apply defaults] をオフにします。

    2. (オプション) [IAM fleet role] で、デフォルトのロールを使用するか、または別のロールを選択できます。ロールの変更後にデフォルトのロールを使用するには、[Use default role] を選択します。

    3. (オプション) [Maximum price] では、デフォルトの上限料金 (オンデマンド料金) を使用するか、支払う予定の上限料金を指定することができます。上限価格が選択したインスタンスタイプのスポット料金より低い場合、スポットインスタンス は起動されません。

    4. (オプション) 特定の期間中のみ有効なリクエストを作成するには、[Request valid from] および [Request valid until] を編集します。

    5. (オプション) デフォルトでは、リクエストの有効期限が切れると スポットインスタンス は終了します。リクエストの有効期限が切れた後も実行し続ける場合、[Terminate the instances when the request expires] をオフにします。

    6. (オプション) ロードバランサーを使用する スポットインスタンス を登録するには、[Receive traffic from one or more load balancers] を選択して、1 つ以上の クラシックロードバランサー またはターゲットグループを選択します。

  9. (オプション) AWS CLI で使用される起動設定のコピーをダウンロードするには、[JSON config] を選択します。

  10. [Launch] を選択します。

    スポットフリート リクエストタイプは fleet です。リクエストが実行されると、タイプ instance のリクエストが追加されます。このとき、状態は active になり、ステータスは fulfilled になります。

AWS CLI を使用して スポットフリート リクエストを作成するには

  • スポットフリート リクエストを作成するには、以下の request-spot-fleet コマンドを使用します。

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

設定ファイルの例については、「スポットフリート 設定例」を参照してください。

出力例を次に示します。

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

スポットフリート のモニタリング

上限料金がスポット料金を超え、容量が利用可能な場合、スポットフリート は スポットインスタンス を起動します。スポットインスタンス は中断されるか手動終了されるまで実行されます。

スポットフリート を監視するには (コンソール)

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Spot Requests] を選択します。

  3. スポットフリート リクエストを選択します。設定の詳細を表示するには、[Description] を選択します。

  4. スポットフリート の スポットインスタンス を一覧表示するには、[Instances] を選択します。

  5. スポットフリート の履歴を表示するには、[History] を選択します。

スポットフリート を監視するには (AWS CLI)

スポットフリート リクエストの詳細を表示するには、以下の describe-spot-fleet-requests コマンドを使用します。

aws ec2 describe-spot-fleet-requests

指定した スポットフリート の スポットインスタンス の詳細を表示するには、以下の describe-spot-fleet-instances コマンドを使用します。

aws ec2 describe-spot-fleet-instances --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE

指定した スポットフリート リクエストの履歴を表示するには、以下の describe-spot-fleet-request-history コマンドを使用します。

aws ec2 describe-spot-fleet-request-history --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2015-05-18T00:00:00Z

スポットフリート リクエストの変更

以下のタスクを完了するように、アクティブな スポットフリート リクエストを変更できます。

  • ターゲット容量を増やします

  • ターゲット容量を減らします

注記

ワンタイム スポットフリート リクエストは変更できません。スポットフリート リクエストを作成したときに [Maintain target capacity (ターゲット容量を維持する)] を選択した場合にのみ、スポットフリート リクエストを修正することができます。

スポットフリート リクエストの スポットインスタンス 部分のみ変更できます。スポットフリート リクエストの オンデマンドインスタンス 部分を変更することはできません。

ターゲット容量を増やす場合、スポットフリート は、スポットフリート リクエストの配分戦略に従って追加の スポットインスタンス を起動します。配分戦略が lowestPrice の場合、スポットフリート は、スポットフリート リクエストの最低価格の スポットインスタンス プールからインスタンスを起動します。配分戦略が diversified の場合、スポットフリート は、スポットフリート リクエストのプールにインスタンスを分散します。

ターゲット容量を減らす場合、スポットフリート は新しいターゲット容量を超えるすべてのオープンリクエストをキャンセルします。スポットフリート のサイズが新しいターゲット容量に達するとスポットフリートのスポットインスタンスが終了されるようにリクエストできます。配分戦略が lowestPrice である場合は、スポットフリート の最低単価のインスタンスが終了されます。配分戦略が diversified である場合は、スポットフリート のプール全体でインスタンスが終了されます。あるいは、スポットフリート の現在のサイズを保持するようにリクエストすることもできますが、中断または手動終了されたスポットインスタンスへの置き換えはできません。

ターゲット容量が減ったために スポットフリート によってインスタンスが削除される場合、インスタンスは スポットインスタンス の中断通知を受け取ります。

スポットフリート リクエストを変更するには (コンソール)

  1. スポットコンソール (https://console.aws.amazon.com/ec2spot/home/fleet) を開きます。

  2. スポットフリート リクエストを選択します。

  3. [Actions]、[Modify target capacity] の順に選択します。

  4. [Modify target capacity] で、以下の操作を実行します。

    1. 新しいターゲット容量を入力します。

    2. (オプション) ターゲット容量を小さくしてもスポットフリートの現在のサイズを保持する場合は、[Terminate instances] をオフにします。

    3. [Submit] を選択します。

AWS CLI を使用して スポットフリート リクエストを変更するには

次の modify-spot-fleet-request コマンドを使用して、指定する スポットフリート リクエストのターゲット容量を更新します。

aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity 20

前のコマンドを以下のように変更することで、結果的にいずれの スポットインスタンス も終了せずに、指定した スポットフリート のターゲット容量を減らすことができます。

aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity 10 --excess-capacity-termination-policy NoTermination

スポットフリート リクエストのキャンセル

スポットフリート を使用しなくなったら、スポットフリート リクエストをキャンセルできます。これにより、スポットフリート に関連付けられているすべてのスポットリクエストがキャンセルされるため、その スポットフリート の新しいスポットインスタンスは起動されなくなります。スポットフリート の スポットインスタンス を終了するかどうか指定する必要があります。インスタンスを終了する場合、スポットフリート リクエストは cancelled_terminating 状態になります。それ以外の場合、スポットフリートリクエストは cancelled_running 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行されます。

スポットフリート リクエストをキャンセルするには (コンソール)

  1. スポットコンソール (https://console.aws.amazon.com/ec2spot/home/fleet) を開きます。

  2. スポットフリート リクエストを選択します。

  3. [Actions]、[Cancel spot request] の順に選択します。

  4. [スポットリクエストをキャンセルする] で、スポットフリート のキャンセルを確認します。スポットフリートの現在のサイズを保持するには、[Terminate instances] をオフにします。準備ができたら、[Confirm] を選択します。

AWS CLI を使用して スポットフリート をキャンセルするには

指定した スポットフリート リクエストをキャンセルし、インスタンスを終了するには、以下の cancel-spot-fleet-requests コマンドを使用します。

aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --terminate-instances

出力例を次に示します。

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_terminating", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }

前のコマンドを以下のように変更することで、インスタンスを終了せずに、指定した スポットフリート リクエストをキャンセルできます。

aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --no-terminate-instances

出力例を次に示します。

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_running", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }