スポットプレイスメントスコアを計算する - Amazon Elastic Compute Cloud

スポットプレイスメントスコアを計算する

スポットプレイスメントスコアは、ターゲット容量とコンピューティング要件に基づいて計算できます。詳細については、「スポットプレイスメントスコアの仕組み」を参照してください。

必要な アクセス許可

必要なアクセス許可を持っていることを確認してください。詳細については、「スポットプレイスメントスコアに必要なアクセス許可」を参照してください。

自動化ソリューションが必要な場合は、このユーザーガイドの手動ステップに従うのではなく、スポットプレースメントスコアトラッカーダッシュボードを構築します。スコアを自動的にキャプチャして Amazon CloudWatch に保存できます。詳細については、「Guidance for Building a Spot Placement Score Tracker Dashboard on AWS」を参照してください。

インスタンス属性を使用して計算する

インスタンス属性を指定してスポットプレイスメントスコアを計算するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. [スポットインスタンスのリクエスト] の横にある下矢印を選択してから、[スポットプレイスメントスコアの計算] を選択します。

  4. [Enter requirements] (要件の入力) を選択します。

  5. [Target capacity] (ターゲット容量) には、インスタンス数や vCPU 数、またはメモリ量 (MiB) に関して希望する容量を入力します。

  6. [Instance type requirements] (インスタンスタイプの要件) では、コンピューティング要件を指定し、Amazon EC2 にこれらの要件に最適なインスタンスタイプを識別させるために、[Specify instance attributes that match your compute requirements] (コンピューティング要件に一致するインスタンス属性を指定) を選択します。

  7. [vCPUs] に、希望する vCPU の最小数と最大数を入力します。制限なしを指定するには、[No minimum] (最小値なし)、[No maximum] (最大値なし)、または両方を選択します。

  8. [Memory (GiB)] (メモリ (GiB)) に、希望するメモリの最小値と最大値を入力します。制限なしを指定するには、[No minimum] (最小値なし)、[No maximum] (最大値なし)、または両方を選択します。

  9. [CPU architecture] (CPU アーキテクチャ) では、必要なインスタンスアーキテクチャを選択します。

  10. (オプション) [Additional instance attributes] (その他のインスタンス属性) では、オプションで 1 つ以上の属性を指定して、コンピューティング要件をより詳細に表現できます。追加の属性は、リクエストにさらに制約を追加します。追加の属性は省略できます。省略すると、デフォルト値が使用されます。各属性およびそのデフォルト値の説明については、「Amazon EC2 コマンドラインリファレンス」の「get-spot-placement-scores」を参照してください。

  11. (オプション) 指定した属性を持つインスタンスタイプを表示するには、[Preview matching instance types] (一致するインスタンスタイプをプレビューする) を展開します。インスタンスタイプをプレイスメント評価に使用しないようにするには、インスタンスを選択し、[Exclude selected instance types] (選択されたインスタンスタイプを除外する) を選択します。

  12. [Load placement scores] (プレイスメントスコアのロード) を選択し、結果を確認します。

  13. (オプション) 特定のリージョンのスポットプレイスメントスコアを表示するには、[Regions to evaluate] (評価するリージョン) で、評価するリージョンを選択し、[Calculate placement scores] (プレイスメントスコアの計算) を選択します。

  14. (オプション) 表示されたリージョンの、アベイラビリティーゾーンのスポット配置スコアを表示するには、[アベイラビリティーゾーンあたりの配置スコアを表示] のチェックボックスをオンにします。スコアリングされたアベイラビリティーゾーンのリストは、すべてのスポット容量を 1 つのアベイラビリティーゾーンで起動する場合に便利です。

  15. (オプション) コンピューティング要件を編集して新しいプレイスメントスコアを取得するには、[Edit] (編集) を選択し、必要な調整を行った後、[Calculate placement scores] (プレイスメントスコアの計算) を選択します。

インスタンスタイプを使用して計算する

インスタンスタイプを指定してスポットプレイスメントスコアを計算するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. [スポットインスタンスのリクエスト] の横にある下矢印を選択してから、[スポットプレイスメントスコアの計算] を選択します。

  4. [Enter requirements] (要件の入力) を選択します。

  5. [Target capacity] (ターゲット容量) には、インスタンス数や vCPU 数、またはメモリ量 (MiB) に関して希望する容量を入力します。

  6. [Instance type requirements] (インスタンスタイプの要件) では、使用するインスタンスタイプを指定するため、[Manually select instance types] (手動でインスタンスタイプを選択する) を選択します。

  7. [Select instance types] (インスタンスタイプを選択) を選択し、使用するインスタンスタイプを選択してから [Select] (選択) を選択します。インスタンスタイプをすばやく検索するには、フィルターバーを使用して、異なるプロパティでインスタンスタイプをフィルタリングできます。

  8. [Load placement scores] (プレイスメントスコアのロード) を選択し、結果を確認します。

  9. (オプション) 特定のリージョンのスポットプレイスメントスコアを表示するには、[Regions to evaluate] (評価するリージョン) で、評価するリージョンを選択し、[Calculate placement scores] (プレイスメントスコアの計算) を選択します。

  10. (オプション) 表示されたリージョンの、アベイラビリティーゾーンのスポット配置スコアを表示するには、[アベイラビリティーゾーンあたりの配置スコアを表示] のチェックボックスをオンにします。スコアリングされたアベイラビリティーゾーンのリストは、すべてのスポット容量を 1 つのアベイラビリティーゾーンで起動する場合に便利です。

  11. (オプション) インスタンスタイプのリストを編集して新しいプレイスメントスコアを取得するには、[Edit] (編集) を選択し、必要な調整を行ってから [Calculate placement scores] (プレイスメントスコアの計算) を選択します。

AWS CLI を使用して計算する

スポットプレイスメントスコアを計算するには
  1. (オプション) スポットプレイスメントスコアの設定で指定可能なすべてのパラメータを生成するには、get-spot-placement-scores コマンドと --generate-cli-skeleton パラメータを使用します。

    aws ec2 get-spot-placement-scores \ --region us-east-1 \ --generate-cli-skeleton

    以下は出力例です。

    { "InstanceTypes": [ "" ], "TargetCapacity": 0, "TargetCapacityUnitType": "vcpu", "SingleAvailabilityZone": true, "RegionNames": [ "" ], "InstanceRequirementsWithMetadata": { "ArchitectureTypes": [ "x86_64_mac" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 0 }, "MemoryMiB": { "Min": 0, "Max": 0 }, "CpuManufacturers": [ "amd" ], "MemoryGiBPerVCpu": { "Min": 0.0, "Max": 0.0 }, "ExcludedInstanceTypes": [ "" ], "InstanceGenerations": [ "previous" ], "SpotMaxPricePercentageOverLowestPrice": 0, "OnDemandMaxPricePercentageOverLowestPrice": 0, "BareMetal": "excluded", "BurstablePerformance": "excluded", "RequireHibernateSupport": true, "NetworkInterfaceCount": { "Min": 0, "Max": 0 }, "LocalStorage": "included", "LocalStorageTypes": [ "hdd" ], "TotalLocalStorageGB": { "Min": 0.0, "Max": 0.0 }, "BaselineEbsBandwidthMbps": { "Min": 0, "Max": 0 }, "AcceleratorTypes": [ "fpga" ], "AcceleratorCount": { "Min": 0, "Max": 0 }, "AcceleratorManufacturers": [ "amd" ], "AcceleratorNames": [ "vu9p" ], "AcceleratorTotalMemoryMiB": { "Min": 0, "Max": 0 } } }, "DryRun": true, "MaxResults": 0, "NextToken": "" }
  2. 前のステップの出力を使用して JSON 設定ファイルを作成し、次のように設定します。

    1. TargetCapacity には、インスタンス数や vCPU 数、またはメモリ量 (MiB) に関して希望するスポット容量を入力します。

    2. TargetCapacityUnitType に、ターゲット容量の単位を入力します。このパラメータを省略すると、デフォルトで units になります。

      有効な値: units (インスタンス数に変換されます) | vcpu | memory-mib

    3. スコアリングされたアベイラビリティーゾーンのリストを返すレスポンスのため、SingleAvailabilityZonetrue を指定します。スコアリングされたアベイラビリティーゾーンのリストは、すべてのスポット容量を 1 つのアベイラビリティーゾーンで起動する場合に便利です。このパラメータを省略すると、デフォルトで false となり、レスポンスは、スコアリングされたリージョンのリストを返します。

    4. (オプション) RegionNames で、フィルターとして使用するリージョンを指定します。リージョンコードを指定する必要があります (例: us-east-1)。

      リージョンフィルターを使用すると、レスポンスは指定したリージョンのみを返します。trueSingleAvailabilityZone を指定した場合は、指定したリージョンのアベイラビリティーゾーンのみを返します。

    5. 同じ設定に InstanceTypes または InstanceRequirements を含めることができますが、両方を含めることはできません。

      JSON 設定で、次のいずれかを指定します。

      • インスタンスタイプのリストを指定するには、InstanceTypes パラメータでインスタンスタイプを指定します。少なくとも 3 つの異なるインスタンスタイプを指定します。1 つまたは 2 つのインスタンスタイプのみを指定した場合、スポットプレイスメントスコアは低スコアを返します。インスタンスタイプのリストについては、「Amazon EC2 インスタンスタイプ」を参照してください。

      • Amazon EC2 がこれらの属性に一致するインスタンスタイプを識別するように、インスタンスの属性を指定するには、InstanceRequirements 構造内にある属性を指定します。

        VCpuCountMemoryMiB および CpuManufacturers の値を指定する必要があります。その他の属性は省略できます。省略すると、デフォルト値が使用されます。各属性およびそのデフォルト値の説明については、「Amazon EC2 コマンドラインリファレンス」の「get-spot-placement-scores」を参照してください。

      設定例については、「設定例」を参照してください。

  3. JSON ファイルで指定した条件のスポットプレイスメントスコアを取得するには、get-spot-placement-scores コマンドを使用し、--cli-input-json パラメータで JSON ファイルの名前とパスを指定します。

    aws ec2 get-spot-placement-scores \ --region us-east-1 \ --cli-input-json file://file_name.json

    SingleAvailabilityZonefalse に設定されているか、省略されている場合の出力例 (省略されている場合のデフォルトは false) – リージョンのスコアリングされたリストが返されます。

    "SpotPlacementScores": [ { "Region": "us-east-1", "Score": 7 }, { "Region": "us-west-1", "Score": 5 }, ...

    SingleAvailabilityZonetrue に設定されている場合の出力例 – アベイラビリティーゾーンのスコアリストが返されます。

    "SpotPlacementScores": [ { "Region": "us-east-1", "AvailabilityZoneId": "use1-az1", "Score": 8 }, { "Region": "us-east-1", "AvailabilityZoneId": "usw2-az3", "Score": 6 }, ...

設定例

AWS CLI を使用する場合、次の設定例を使用できます。

例: インスタンスタイプとターゲット容量の指定

次の設定例では、3 つの異なるインスタンスタイプと 500 スポットインスタンスのターゲットスポット容量を指定します。

{ "InstanceTypes": [ "m5.4xlarge", "r5.2xlarge", "m4.4xlarge" ], "TargetCapacity": 500 }

例: メモリの観点からインスタンスタイプとターゲット容量を指定する

次の設定例では、3 つの異なるインスタンスタイプと 500,000 MiB メモリのターゲットスポット容量を指定します。この場合、起動するスポットインスタンスの数で合計 500,000 MiB のメモリを提供する必要があります。

{ "InstanceTypes": [ "m5.4xlarge", "r5.2xlarge", "m4.4xlarge" ], "TargetCapacity": 500000, "TargetCapacityUnitType": "memory-mib" }

例: 属性ベースのインスタンスタイプ選択の属性を指定する

次の設定例は、属性ベースのインスタンスタイプ選択用に設定され、その後に設定例の説明が記載されています。

{ "TargetCapacity": 5000, "TargetCapacityUnitType": "vcpu", "InstanceRequirementsWithMetadata": { "ArchitectureTypes": ["arm64"], "VirtualizationTypes": ["hvm"], "InstanceRequirements": { "VCpuCount": { "Min": 1, "Max": 12 }, "MemoryMiB": { "Min": 512 } } } }
InstanceRequirementsWithMetadata

属性ベースのインスタンスタイプの選択を使用するには、設定に InstanceRequirementsWithMetadata 構造を含め、スポットインスタンスに必要な属性を指定します。

前の例で、次の必須インスタンス属性を指定しています。

  • ArchitectureTypes – インスタンスタイプのアーキテクチャタイプは arm64 である必要があります。

  • VirtualizationTypes – インスタンスタイプの仮想化タイプは hvm である必要があります。

  • VCpuCount – インスタンスタイプには、1 個以上、最大 12 個の vCPU が必要です。

  • MemoryMiB – インスタンスタイプには最低 512 MiB のメモリが必要です。Max パラメータを省略した場合、上限がないことを示します。

指定できるオプションの属性は他にもいくつかあります。属性のリストについては、「AWS CLI コマンドラインリファレンス」の「get-spot-placement-scores」を参照してください。

TargetCapacityUnitType

TargetCapacityUnitType パラメータは、ターゲット容量の単位を指定します。この例では、ターゲット容量が 5000、ターゲット容量単位のタイプが vcpu となっており、合わせて 5000 vCPU の希望ターゲット容量が指定されており、起動するスポットインスタンスの数で合計 5000 vCPU を提供する必要があります。

例: 属性ベースのインスタンスタイプ選択の属性を指定し、アベイラビリティーゾーンのスコアリストを返す

次の設定例は、属性ベースのインスタンスタイプ選択用に設定されています。"SingleAvailabilityZone": true を指定した場合、レスポンスはスコアリングされたアベイラビリティーゾーンのリストを返します。

{ "TargetCapacity": 1000, "TargetCapacityUnitType": "vcpu", "SingleAvailabilityZone": true, "InstanceRequirementsWithMetadata": { "ArchitectureTypes": ["arm64"], "VirtualizationTypes": ["hvm"], "InstanceRequirements": { "VCpuCount": { "Min": 1, "Max": 12 }, "MemoryMiB": { "Min": 512 } } } }