Spot Instances

スポットインスタンスは、休止中の EC2 キャパシティーを使用するインスタンスで、オンデマンド価格より低料金で利用可能。 スポットインスタンス では未使用の EC2 インスタンスを静止状態割引でリクエストできるため、Amazon EC2 のコストを大幅に削減できる。 スポットインスタンスの時間料金は、スポット料金と呼ばれる。 各アベイラビリティーゾーンにおける各インスタンスタイプのスポット料金は、Amazon EC2 によって設定され、スポットインスタンス の長期的な需給に基づいて徐々に調整される。 スポットインスタンス は、利用可能なキャパシティーが存在し、リクエストの 1 時間あたりの上限価格がスポット料金より高い場合に実行される。

概念

  • スポットキャパシティープール
    • インスタンスタイプ (m5.large など) とアベイラビリティーゾーンが同一で、使用されていない EC2 インスタンスのセット。
  • スポット料金
    • スポットインスタンスの現在の料金 (時間あたり)。
  • スポットインスタンスリクエスト
    • スポットインスタンスに対するリクエスト。
    • このリクエストでは、スポットインスタンスに対して支払う 1 時間あたりの上限価格を指定する。
    • 上限料金を指定しない場合、デフォルトの上限料金はオンデマンド価格となる。
    • リクエストの時間あたりの上限料金がスポット料金を超える場合で、容量が利用可能な場合、Amazon EC2 はリクエストを受理する。
    • スポットインスタンスリクエストには、ワンタイムと永続の2種類がある。
    • リクエストに関連付けられたスポットインスタンスが終了すると、Amazon EC2 は永続スポットインスタンスリクエストを自動的に再送信する。
  • EC2 インスタンスの再調整に関する推奨事項
    • Amazon EC2は、インスタンスの再調整に関する推奨事項に関するシグナルを発し、スポットインスタンスにおいて中断のリスクが高まったことをユーザーに通知する。
    • このシグナルにより、スポットインスタンスで中断 2 分前の通知が発信されていなくても、ユーザーは既存の、または新しいスポットインスタンスについて、前もってワークロードを再調整することができる。
  • スポットインスタンスの中断
    • Amazon EC2 が容量を戻してもらう必要がある場合、または、スポット料金がリクエストの上限料金を超えた場合には、Amazon EC2 はスポットインスタンスを終了、停止、または休止状態にする。
    • Amazon EC2 は、スポットインスタンスが中断される 2 分前に、そのインスタンスに対し中断を警告するための通知を送信する。

スポットフリート

スポットフリートは、スポットインスタンスのセットであり、オプションで、指定した条件に基づいて起動されるオンデマンドインスタンスでもある。 スポットフリートは、ニーズに合うスポットキャパシティープールを選択して、フリートのターゲットキャパシティーを満たすまでスポットインスタンスを起動する。 デフォルトでは、スポットフリートは、フリートのスポットインスタンスが削除された後に代替インスタンスを作成することによってターゲット容量が維持されるように設定されている。 インスタンスの終了後に保持されないワンタイムリクエストとしてスポットフリートを送信できる。オンデマンドインスタンスリクエストをスポットフリートリクエストに含めることができる。

スポットフリートのリクエストタイプ

  • request
    • リクエストタイプをrequestとして設定した場合、スポットフリートは希望する容量に非同期ワンタイムリクエストを配置する。
    • それ以降にスポットの中断のためにキャパシティーが減少した場合、フリートは スポットインスタンス の補充を試みない。
    • また、キャパシティーが利用できない場合にも代替のスポットキャパシティープールへのリクエストを送信しない。
  • maintain
    • (デフォルト) リクエストタイプをmaintainとして設定した場合、スポットフリートは希望する容量に非同期リクエストを配置し、中断された スポットインスタンス を自動的に補充して、容量を維持する。

Amazon EC2 コンソールでリクエストのタイプを指定するには、スポットフリートリクエストを作成するときに次の操作を行う。

  • タイプ request のスポットフリートを作成するには、[Maintain target capacity] (ターゲット容量の維持) チェックボックスをクリアする。
  • タイプ maintain のスポットフリートを作成するには、[Maintain target capacity] (ターゲット容量の維持) チェックボックスを選択する。

スポットインスタンスの配分戦略

スポットフリートのスポットインスタンスの配分戦略は、起動仕様で指定される可能なスポットキャパシティープールから、スポットフリートリクエストを満たす方法を決定する。 以下は、スポットフリートリクエストで指定できる配分戦略。

  • lowestPrice
    • スポットインスタンス は、最低価格のプールから取得される。(デフォルト)
  • diversified
    • スポットインスタンス はすべてのプールに分散される。
  • capacityOptimized
    • スポットインスタンス は、起動中のインスタンスの数に最適な容量を持つプールから提供される。オプションで capacityOptimizedPrioritized により、フリート内の各インスタンスタイプに優先順位を設定できる。スポットフリートは、最初に容量を最適化するが、ベストエフォートベースでインスタンスタイプの優先順位を重視する。
    • スポットインスタンス では、価格は需要と供給の長期的な傾向に基づいて時間の経過とともに緩やかに変動するが、容量はリアルタイムで変動する。
    • リアルタイムの容量データを調べ、可用性の最も高いプールを予測することで、そのプールから スポットインスタンス を自動的に起動する。この戦略は、作業の再開とチェックポイントの設定に関連する中断のコストが高くなる可能性のあるワークロード (ビッグデータと分析、画像とメディアのレンダリング、機械学習、ハイパフォーマンスコンピューティングなど) に適している。中断の可能性を低くすることによりワークロードの全体的なコストを削減できる。
    • capacityOptimizedPrioritized
      • インスタンスタイプを優先順位の高い順から低い順へ指定できる。異なるインスタンスタイプに対し同じ優先順位を設定できる。スポットフリートは最初に容量を最適化するが、インスタンスタイプの優先順位をベストエフォートベースで決定する。これは、中断の可能性を最小限に抑える必要があり、特定のインスタンスタイプを優先することが重要なワークロードに適したオプション。優先順位の使用は、フリートが起動テンプレートを使用する場合にのみサポートされる。capacityOptimizedPrioritized の優先順位を設定するとき、オンデマンド AllocationStrategy が prioritized. に設定されていると、同じ優先順位がオンデマンドインスタンスにも適用されるので注意。
  • InstancePoolsToUseCount
    • スポットインスタンス は、指定した数のスポットプールに分散される。このパラメータは lowestPrice と組み合わせて使用する場合にのみ有効。

中断された スポットインスタンス の請求

スポットインスタンスを中断するユーザー オペレーティングシステム 最初の 1 時間で中断 最初の 1 時間後の任意の時間に中断
ユーザー自らスポットインスタンスを停止または終了した場合 Windows および Linux (RHEL と SUSE は除く) 使用された時間 (秒) の請求 使用された時間 (秒) の請求
RHEL および SUSE 使用時間が 1 時間未満の場合でも、1 時間分の料金を請求 使用された 1 時間分 (中断された時間が 1 時間未満の場合も 1時間分) を請求
Amazon EC2 がスポットインスタンスを中断した場合 Windows および Linux (RHEL と SUSE は除く) 料金は発生しない 使用された時間 (秒) の請求
RHEL および SUSE 料金は発生しない 使用された 1 時間分は請求されるが、中断された時間が 1 時間未満の場合は請求されない