VM インスタンスの最小 CPU プラットフォームの指定


このページでは、デフォルトのプラットフォームではなく、最小 CPU プラットフォームを使用するように仮想マシン(VM)インスタンスを作成または更新する方法について説明します。Google データセンターでは、さまざまな世代の CPU プロセッサを提供しており、それによって最小 CPU プラットフォームが決まります。

最小 CPU プラットフォームを指定すると、ワークロードが特定のプロセッサの世代で提供されるパフォーマンスの向上を必要とする場合に便利です。ただし、最小 CPU プラットフォームを指定すると、VM を作成できるゾーンが制限される可能性があります。

各 CPU プラットフォームは、Advanced Vector Extensions などの増分機能をサポートしています(例: AVX2、AVX-512)。クロック速度やメモリアクセス シーク時間などの基本的なシステム関連機能は、CPU プラットフォームによって異なる場合があります。

始める前に

最小 CPU プラットフォームを選択するケース

たいていの場合、最小 CPU プラットフォームを選択する必要はありません。Compute Engine の各ゾーンには、Google によって廃止または更新される可能性があるデフォルトの CPU プラットフォームがあります。最小 CPU が指定されていない VM を作成すると、その VM はデフォルトの CPU プラットフォームを取得します。

ワークロードのパフォーマンスが大幅に向上する場合や、コードで使用する AVX2、AVX-512 などの機能が提供される場合にのみ、最小 CPU プラットフォームを選択することをおすすめします。VM に最小 CPU プラットフォームを選択すると、CPU プラットフォームの提供が限られているゾーンで VM を起動できるかどうかに影響が生じます。

最小 CPU プラットフォームの選択の仕組み

最小 CPU プラットフォームを指定する場合は、以下の点を考慮してください。

  • Compute Engine では、使用可能な場合は常に最小 CPU のプラットフォームが使用されます。
  • Google がゾーン内の CPU プラットフォームを廃止または更新した場合、VM を停止して再起動すると、そのゾーンで利用可能な新しい CPU プラットフォームで引き続き VM を実行できます。CPU プラットフォームの廃止はまれに行われます。Google では、CPU プラットフォームを廃止または更新する前にお客様にお知らせします。

VM に最小 CPU プラットフォームを選択すると、次のように動作します。

  • VM を停止して CPU プラットフォームを変更しない限り、VM はこの CPU プラットフォームを使用します。
  • ライブ マイグレーション中、VM は選択された CPU プラットフォームを保持します。

デフォルトの CPU プラットフォームの廃止またはアップグレード

Google では CPU プラットフォームを廃止する、または特定のゾーンでデフォルトの CPU プラットフォームを更新する場合があります。これには次の理由が該当します。

  • ゾーンの容量は時間とともに増大します。より新しい CPU プラットフォームが利用可能になると、ゾーンではそのプラットフォームにプロアクティブに切り替えられます。
  • 3~5 年ごとに、Google は古い CPU プラットフォームを新しいプラットフォームに置き換え、デフォルトの CPU プラットフォームをそのゾーンで利用可能な次に新しいプラットフォームに更新します。

新しいリージョンまたはゾーンが作成されると、その時点で最新の CPU プラットフォームが使用されます。

ゾーンが廃止された、またはゾーンのデフォルトの CPU プラットフォームが変更された場合、Google は影響を受けるお客様に通知し、詳細なタイムラインと新しいプラットフォームに移行するための具体的な手順をお知らせします。

VM では、ユーザーが指定した最小 CPU プラットフォームよりも古い世代のプラットフォームが使用されることはありません。Compute Engine で VM が新しいプラットフォームに移行しても、VM の料金は変わりません。

制限事項

  • 複数のリージョンとゾーンが複数の CPU プロセッサをサポートしています。
  • 事前定義またはカスタムの E2 VM に最小 CPU プラットフォームを選択することはできません。
  • 次の共有コアの汎用 VM では、最小 CPU プラットフォームを選択できません。
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

CPU プラットフォームの可用性

CPU プラットフォームを使用できるかどうかは、ゾーンによって異なります。また、各ゾーンで使用可能なハードウェアとマシン ファミリーによって異なります。次のリストに、サポートされている最小 CPU プラットフォームと、各プラットフォームに対して使用される有効な構文を示します。

  • Ampere Altra Arm プロセッサ: "Ampere Altra"
  • 第 4 世代: Intel Xeon(Sapphire Rapids)プロセッサ: "Intel Sapphire Rapids"
  • 第 3 世代: Intel Xeon(Ice Lake)プロセッサ: "Intel Ice Lake"
  • 第 2 世代: Intel Xeon(Cascade Lake)プロセッサ: "Intel Cascade Lake"
  • 第 1 世代: Intel Xeon(Skylake)プロセッサ: "Intel Skylake"
  • Intel Xeon E5 v4(Broadwell)プロセッサ: "Intel Broadwell"
  • Intel Xeon E5 v3(Haswell)プロセッサ: "Intel Haswell"
  • Intel Xeon E5 v2(Ivy Bridge)プロセッサ: "Intel Ivy Bridge"
  • Intel Xeon E5(Sandy Bridge)プロセッサ: "Intel Sandy Bridge"
  • 第 3 世代: AMD EPYC Milan プロセッサ: "AMD Milan"
  • 第 2 世代: AMD EPYC Rome プロセッサ: "AMD Rome"

次の点を考慮してください。

  • 最小 CPU プラットフォーム セレクションに複数の CPU プラットフォームが利用可能なゾーンは、特定のゾーンに限られます。特定のゾーンでサポートされているプラットフォームのリストを表示するには、gcloud compute zones describe コマンドを使用するか、API にリクエストを送信します。
  • 単一テナントノードを使用している場合、各ノードはノード テンプレートで定義したノードタイプに対応する CPU プラットフォームを使用します。結果として、単一テナントノードを使用する VM に対して最小 CPU プラットフォームは指定できません。

gcloud

  • ゾーンで使用可能な CPU プラットフォームを確認するには、gcloud compute zones describe コマンドを使用します。

    gcloud compute zones describe ZONE
    

    ZONE は、使用可能な CPU プラットフォームを確認するゾーンの名前に置き換えます(us-west1-a など)。

    このコマンドの次の出力には、us-west1-a ゾーンの CPU プラットフォームの一覧が含まれています。

    gcloud compute zones describe us-west1-a
    availableCpuPlatforms:
    - Intel Skylake
    - Intel Broadwell
    ...
    

API

  • Compute Engine API で、目的のゾーンに対する GET リクエストを作成します。

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/ZONE
    

    ZONE は、使用可能な CPU プラットフォームを確認するゾーンの名前に置き換えます。

    このコマンドの次の出力には、ゾーンでサポートされている CPU プラットフォームの一覧が含まれています。

    {
      "kind": "compute#zone",
      "id": "2210",
      "creationTimestamp": "2016-06-10T09:30:55.189-07:00",
      "name": "us-west1-a",
      "description": "us-west1-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/us-west1",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-west1-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Haswell"
      ]
     }

新しい VM 用の最小 CPU プラットフォームの選択

最小 CPU プラットフォームは、インスタンスの作成時に指定できます。

コンソール

  1. Google Cloud コンソールで、[インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. [マシンの構成] セクションで、[詳細構成] セクションを開きます。

  3. [CPU プラットフォーム] リストで、VM の CPU のプラットフォームを選択します。

  4. VM 作成の残りの手順を続けます。

gcloud

  • 最小 CPU プラットフォームを使用する新しい VM を作成するには、--min-cpu-platform フラグを指定して gcloud compute instances create コマンドを実行します。

    gcloud compute instances create INSTANCE \
        --zone=ZONE \
        --min-cpu-platform="PLATFORM"

    次のように置き換えます。

    • INSTANCE: 作成するインスタンスの名前
    • ZONE: インスタンスを作成するゾーンの名前(例: europe-west1-b
    • PLATFORM: インスタンスに使用する最小 CPU プラットフォームのわかりやすい名前(例: Intel Sandy Bridge

      最小 CPU プラットフォームの指定をクリアするには、PLATFORMAUTOMATIC に置き換えます。

      可用性セクションで、各ゾーンで使用可能なプラットフォームを確認します。

API

  • Compute Engine API で、リクエスト本文の一部として minCpuPlatform プロパティを指定します。

    以下に、リクエスト本文の例を示します。

    "name": "INSTANCE",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "minCpuPlatform": "PLATFORM",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT"
       }],
      "network": "global/networks/default"
    }],
    "disks": [{
       "autoDelete": "true",
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
       }
     }]

    次のように置き換えます。

    • INSTANCE: 新しいインスタンスの名前
    • ZONE: VM を作成するゾーンの名前(例: europe-west1-b
    • MACHINE_TYPE: 新しい VM のマシンタイプ
    • PLATFORM: インスタンスに使用する最小 CPU プラットフォームのわかりやすい名前(例: Intel Ivy Bridge

      最小 CPU プラットフォームの指定をクリアするには、PLATFORMAUTOMATIC に置き換えます。

    • IMAGE_PROJECT: イメージ ファミリーのイメージ プロジェクト

    • IMAGE_FAMILY: VM の作成に使用するイメージのイメージ ファミリー

既存の VM の最小 CPU プラットフォームの設定

既存のインスタンスに最小 CPU プラットフォームを設定できます。インスタンスを停止してから、最小 CPU プラットフォームを設定します。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。

  3. 変更する VM を選択します。

  4. [停止] をクリックします。

  5. インスタンスを編集するには、[編集] をクリックします。

  6. [マシンの構成] セクションで、[高度な構成] をクリックします。

  7. [CPU プラットフォーム] プルダウン メニューからオプションを選択します。

  8. 変更を保存します。

  9. 変更した VM を選択します。

  10. [開始 / 再開] をクリックします。

gcloud

  1. VM を停止するには、gcloud compute instances stop コマンドを使用します。

    gcloud compute instances stop INSTANCE
    

    INSTANCE は、最小 CPU プラットフォームを指定するインスタンスの名前に置き換えます。

  2. 最小 CPU プラットフォームを指定するには、--min-cpu-platform フラグを指定して gcloud compute instances update コマンドを実行します。

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="PLATFORM"

    PLATFORM は、インスタンスに使用する最小 CPU プラットフォームのわかりやすい名前に置き換えます(例: Intel Cascade Lake)。

  3. 更新された VM を起動するには、gcloud compute instances start コマンドを使用します。

    gcloud compute instances start INSTANCE
    

API

  1. VM を停止するには、instances.stop メソッドを使用して POST リクエストを作成します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID
    • ZONE: VM インスタンスが配置されているゾーン
    • INSTANCE: 最小 CPU プラットフォームを指定するインスタンスの名前
  2. API で最小 CPU プラットフォームを設定するには、setMinCpuPlatform メソッドに対して POST リクエストを実行します。リクエスト本文には minCpuPlatform プロパティを設定します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": PLATFORM
    }
    

    PLATFORM は、インスタンスに使用する最小 CPU プラットフォームのわかりやすい名前に置き換えます(例: Intel Skylake)。

  3. VM を再起動するには、instances.start メソッドを使用して POST リクエストを作成します。

    POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

最小 CPU プラットフォームの設定の削除

最小 CPU プラットフォームの代わりにデフォルトの CPU プラットフォームを使用するようにインスタンスを更新できます。インスタンスが実行されている場合は、変更する前に停止する必要があります。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。

  3. 変更する VM を選択します。

  4. [停止] をクリックします。

  5. インスタンスを編集するには、[編集] をクリックします。

  6. [マシンの構成] セクションで、[高度な構成] をクリックします。

  7. [CPU プラットフォーム] オプションを [自動] に変更します。

  8. 変更した VM を選択します。

  9. [開始 / 再開] をクリックします。

gcloud

  1. VM を停止するには、gcloud compute instances stop コマンドを使用します。

    gcloud compute instances stop INSTANCE
    

    INSTANCE は、変更するインスタンスの名前に置き換えます。

  2. 最小 CPU プラットフォームをリセットするには、--min-cpu-platform フラグを AUTOMATIC に設定して gcloud compute instances update コマンドを実行します。

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="AUTOMATIC"
    
  3. 更新された VM を起動するには、gcloud compute instances start コマンドを使用します。

    gcloud compute instances start INSTANCE
    

API

  1. VM を停止するには、instances.stop メソッドを使用して POST リクエストを作成します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID
    • ZONE: VM インスタンスが配置されているゾーン
    • INSTANCE: 変更するインスタンスの名前
  2. 最小 CPU プラットフォームをリセットするには、setMinCpuPlatform メソッドに POST リクエストを行います。リクエストの本文で、minCpuPlatform プロパティの値を AUTOMATIC に設定します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": AUTOMATIC
    }
    
  3. 更新された VM を起動するには、gcloud compute instances start コマンドを使用します。

    gcloud compute instances start INSTANCE
    

インスタンス テンプレートにおける最小 CPU プラットフォームの指定

マネージド インスタンス グループを使用している場合は、マネージド インスタンス グループに含まれる VM インスタンスに対して最小 CPU プラットフォームを指定できます。

最小 CPU プラットフォームを指定するには、minCpuPlatform プロパティを含むインスタンス テンプレートを作成します。

Console

  1. [インスタンス テンプレート] ページに移動します。

    [インスタンス テンプレート] に移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。

  3. [インスタンス テンプレートを作成] をクリックします。

  4. [マシンの構成] セクションで、[高度な構成] をクリックします。

  5. [CPU プラットフォーム] プルダウン メニューからオプションを選択します。

  6. インスタンス テンプレートの作成プロセスを続けます。

gcloud

  • gcloud compute instance-templates create コマンドでインスタンス テンプレートを作成するときに、--min-cpu-platform フラグを指定します。

    gcloud compute instance-templates create TEMPLATE_NAME \
        --min-cpu-platform="PLATFORM"

    次のように置き換えます。

    • TEMPLATE_NAME: インスタンス テンプレートの名前
    • PLATFORM: インスタンスに使用する最小 CPU プラットフォームのわかりやすい名前(例: Intel Skylake

API

  • Compute Engine API で新しいインスタンス テンプレートを作成するには、リクエストの一部として minCpuPlatform を追加します。

    次に示すインスタンス テンプレートの例では、minCpuPlatform プロパティを加えたテンプレートを新しく作成するときに必要となる最小限のフィールドが含まれています。

    {
    "name": "example-template",
    "properties": {
      "machineType": "zones/us-central1-a/machineTypes/n1-standard-2",
      "minCpuPlatform": "Intel Haswell",
      "networkInterfaces": [
        {
          "network": "global/networks/default",
          "accessConfigs":
          [
            {
              "type": "PERSISTENT",
              "boot": true,
              "mode": "READ_WRITE",
              "initializeParams":
              {
                "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
              }
            }
          ]
        }
      ],
      "disks":
      [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "initializeParams":
          {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
          }
        }
      ]
      }
    }

次のステップ