スポットプレイスメントスコアの仕組み - Amazon Elastic Compute Cloud

スポットプレイスメントスコアの仕組み

スポットプレイスメントスコア機能を使用する場合は、まずスポットインスタンスのコンピューティング要件を指定します。その後、Amazon EC2 は、スポットリクエストが成功する可能性が高い上位 10 リージョン、を返します。各リージョンまたはアベイラビリティーゾーンは、1~10 のスケールで採点されます。10 はスポットリクエストが成功する可能性が高いことを示し、1 はスポットリクエストが成功する可能性が低いことを示します。

ステップ 1: スポット要件を指定する

まず、希望するターゲットスポット容量とコンピューティング要件を次のように指定します。

  1. ターゲットスポット容量を指定し、オプションでターゲット容量の単位を指定します。

    目的のターゲットスポット容量は、インスタンスまたは vCPU の数、または MiB のメモリ量の観点から指定できます。vCPU 数またはメモリ量でターゲット容量を指定するには、ターゲット容量の単位を vcpu または memory-mib のように指定する必要があります。それ以外の場合、デフォルトはインスタンス数になります。

    vCPU の数またはメモリ量の観点からターゲット容量を指定することで、総容量をカウントするときにこれらの単位を使用できます。例えば、異なるサイズのインスタンスを組み合わせて使用する場合は、ターゲット容量を vCPU の総数として指定できます。スポットプレイスメントスコア機能は、vCPU の数でリクエスト内の各インスタンスタイプを考慮し、ターゲット容量を合計するときに、インスタンスの総数ではなく vCPU の総数をカウントします。

    例えば、合計ターゲット容量を 30 vCPU に指定し、インスタンスタイプリストが c5.xlarge (4 vCPU)、m5.2xlarge (8 vCPU)、および r5.large (2 vCPU) で構成されているとします。合計 30 個の vCPU を実現するには、2 個の c5.xlarge (2*4 vCPU)、2 個の m5.2xlarge (2*8 vCPU)、3 個の r5.large (3*2 vCPU) を混在させることができます。

  2. インスタンスタイプまたはインスタンス属性を指定します。

    使用するインスタンスタイプを指定するか、コンピューティング要件に必要なインスタンス属性を指定して、それらの属性を持つインスタンスタイプを Amazon EC2 に識別させることができます。これは属性ベースのインスタンスタイプの選択と呼ばれます。

    同じスポットプレイスメントスコアリクエストで、インスタンスタイプとインスタンス属性の両方を指定することはできません。

    インスタンスタイプを指定する場合は、少なくとも 3 つの異なるインスタンスタイプを指定する必要があります。指定しないと、Amazon EC2 は低いスポットプレイスメントスコアを返します。同様に、インスタンス属性を指定する場合は、少なくとも 3 つの異なるインスタンスタイプを解決する必要があります。

スポット要件を指定するさまざまな方法の例については、「設定例」を参照してください。

ステップ 2: スポットプレイスメントスコアレスポンスをフィルターする

Amazon EC2 は、リージョンまたはアベイラビリティーゾーンごとにスポットプレイスメントスコアを計算し、スポットリクエストが成功する可能性のある上位 10 のリージョンまたは上位 10 のアベイラビリティーゾーンのいずれかを返します。デフォルトでは、スコアリングされたリージョンのリストが返されます。すべてのスポット容量を単一のアベイラビリティーゾーンに起動する場合は、スコアリングされたアベイラビリティーゾーンのリストをリクエストすると便利です。

リージョンフィルターを指定して、レスポンスで返されるリージョンを絞り込むことができます。

リージョンフィルターとスコアリングされたアベイラビリティーゾーンのリクエストを組み合わせることができます。このようにして、スコアリングされたアベイラビリティーゾーンは、フィルターしたリージョンに限定されます。リージョン内の最高スコアのアベイラビリティーゾーンを検索するには、そのリージョンのみを指定すると、そのリージョン内のすべてのアベイラビリティーゾーンのスコアリストが返されます。

ステップ 3: レコメンデーションを確認する

各リージョンまたはアベイラビリティーゾーンのスポットプレイスメントスコアは、ターゲット容量、インスタンスタイプの構成、過去および現在のスポット使用傾向、およびリクエストの時間に基づいて計算されます。スポット容量は絶えず変動するため、同じスポットプレイスメントスコアのリクエストは、異なる時間に計算されたときに異なるスコアを生成する可能性があります。

リージョンとアベイラビリティーゾーンは、1~10 のスケールで採点されます。スコアが 10 の場合は、スポットリクエストが成功する可能性が高いことを示します (ただし保証はされません)。スコアが 1 の場合は、スポットリクエストが成功する可能性がまったくないことを示します。異なるリージョンまたはアベイラビリティーゾーンで同じスコアが返される場合があります。

低スコアが返された場合は、コンピューティング要件を編集してスコアを再計算できます。また、同じコンピューティング要件についてスポットプレイスメントスコアのレコメンデーションを 1 日の異なる時間にリクエストすることもできます。

ステップ 4: レコメンデーションを使用する

スポットプレイスメントスコアは、スポットリクエストの構成がスポットプレイスメントスコアの構成とまったく同じであり (ターゲット容量、ターゲット容量の単位、インスタンスタイプまたはインスタンス属性)、capacity-optimized 配分戦略を使用するように構成されている場合にのみ意味を持ちます。それ以外の場合、使用可能なスポット容量が得られる可能性はスコアと一致しません。

スポットプレイスメントスコアはガイドラインとして機能し、スポットリクエストが完全にまたは部分的に満たされることを保証するスコアはありませんが、次の情報を使用して最良の結果を得ることができます。

  • 同じ設定を使用する — スポットプレイスメントスコアは、Auto Scaling グループ、EC2 フリート、またはスポットフリートのスポットリクエスト設定 (ターゲット容量、ターゲット容量の単位、インスタンスタイプまたはインスタンス属性) がスポットプレイスメントスコアを取得するために入力した内容と同じである場合にのみ関連します。

    スポットプレイスメントスコアリクエストで属性ベースのインスタンスタイプの選択を使用した場合、属性ベースのインスタンスタイプの選択を使用して Auto Scaling グループ、EC2 フリート、またはスポットフリートを設定できます。詳細については、「Create mixed instances group using attribute-based instance type selection」と「EC2 フリートまたはスポットフリートのインスタンスタイプを選択するための属性を指定する」を参照してください。

    注記

    vCPU の数またはメモリ量の観点からターゲット容量を指定し、スポットプレイスメントスコア設定でインスタンスタイプを指定した場合は、現在 Auto Scaling グループ、EC2 フリート、またはスポットフリートでこの設定を作成できないことに注意してください。代わりに、インスタンスの重み付けは WeightedCapacity パラメータを使用して手動で設定する必要があります。

  • capacity-optimized 配分戦略を使用する – いずれのスコアも、スポット容量のリクエストが成功するためには、フリートのリクエストがすべてのアベイラビリティーゾーン (リージョン間の容量をリクエストする場合) または単一のアベイラビリティーゾーン (1 つのアベイラビリティーゾーンで容量をリクエストする場合) と capacity-optimized スポット配分戦略を使用するように設定されていることを前提としています。lowest-price のような他の配分戦略を用いた場合、利用可能なスポット容量を得られる可能性はスコアと一致しません。

  • すぐにスコアに基づいて行動する – スポットプレイスメントスコアのレコメンデーションは、リクエスト時の利用可能なスポット容量を反映したものであり、スポット容量の変動により、同じ構成でも異なる時期に計算すると異なるスコアになることがあります。スコアが 10 の場合、スポット容量リクエストが成功する可能性が高い (保証はされません) ことを意味しますが、最良の結果を得るには、すぐにスコアに基づいて行動することをお勧めします。また、容量リクエストを試行するたびに新しいスコアを取得することをお勧めします。