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

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

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

必要な アクセス許可

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

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

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

インスタンス属性を指定してスポットプレイスメントスコアを計算するには
  1. アマゾン EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで、[Spot Requests] を選択してください。

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

  4. [Enter requirements] (要件の入力) を選択してください。

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

  6. [Instance type requirements] (インスタンスタイプの要件) ではコンピューティング要件を指定し、アマゾン 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 つ以上の属性を指定して、コンピューティング要件をより詳細に表現できます。追加の属性はリクエストにさらに制約を追加します。追加の属性は省略できます。省略すると、デフォルト値が使用されます。各属性およびそのデフォルト値の説明については、アマゾン 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. アマゾン 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 つのインスタンスタイプのみを指定した場合、スポットプレイスメントスコアは低スコアを返します。インスタンスタイプのリストについてはアマゾン EC2 インスタンスタイプ を参照してください。

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

        VCpuCountMemoryMiB および CpuManufacturers の値を指定する必要があります。その他の属性は省略できます。省略すると、デフォルト値が使用されます。各属性およびそのデフォルト値の説明についてはアマゾン 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 パラメータを省略した場合、上限がないことを示します。

指定できるオプションの属性は他にもいくつかあります。属性のリストについては「 コマンドラインリファレンス」の 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 } } } }