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


このページでは、デフォルトのプラットフォームではなく、最小 CPU プラットフォームを使用するように仮想マシン(VM)インスタンスを作成または更新する方法について説明します。

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

各マシンシリーズは 1 つ以上の CPU プラットフォームに関連付けられています。たとえば、N2 VM は Ice Lake または Cascade Lake CPU で実行できます。マシンシリーズで使用できる CPU プラットフォームが複数ある場合は、そのマシンシリーズのマシンタイプを使用して VM を作成する際に、最小 CPU プラットフォームを選択できます。マシン ファミリー、シリーズ、リージョン、ゾーンの可用性によって、最小 CPU プラットフォームに選択できる内容が決まります。

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

準備

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

必要なロールと権限

最小 CPU プラットフォームを変更するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1
  • サービス アカウントとして実行できる VM に接続する: サービス アカウント ユーザー(v1)(roles/iam.serviceAccountUser ロール)

ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

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

たいていの場合、最小 CPU プラットフォームを選択する必要はありません。各 Compute Engine ゾーンには、マシンシリーズごとにデフォルトの CPU プラットフォームがあります。Google は、新しいサーバーが追加されると、ゾーンのデフォルト CPU を変更することがあります。VM の最小 CPU プラットフォームを指定しない場合、VM はマシンタイプとゾーンに関連付けられているデフォルトの CPU プラットフォームを取得します。

最小 CPU プラットフォームは、次の場合にのみ選択することをおすすめします。

  • 最小 CPU プラットフォームがワークロードのパフォーマンスを大幅に向上させる場合、またはコードで使用する AVX2 や AVX-512 などの機能を提供する場合。
  • 予約を使用する VM を作成する場合は、予約と同じ CPU プラットフォームを指定する必要があります。

VM に最小 CPU プラットフォームを選択すると、CPU プラットフォームの提供が限られているゾーンで VM を起動できるかどうかに影響が生じます。

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

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

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

制限事項

  • リージョンとゾーンは複数の CPU プラットフォームをサポートしていますが、リージョンとゾーンがすべての CPU プラットフォームを提供しているとは限りません。
  • 単一テナントノードを使用する 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"
  • 第 4 世代: AMD EPYC Genoa プロセッサ: "AMD Genoa"
  • 第 3 世代: AMD EPYC Milan プロセッサ: "AMD Milan"
  • 第 2 世代: AMD EPYC Rome プロセッサ: "AMD Rome"

利用可能な CPU プラットフォームをゾーンごとに表示する

同じマシンシリーズの複数の CPU プラットフォームが含まれ、最小 CPU プラットフォームを選択できるのは、特定のリージョンとゾーンのみです。特定のゾーンでサポートされているプラットフォームのリストを表示するには、gcloud CLI または REST を使用します。

単一テナントノードを使用している場合、各ノードはノード テンプレートで定義したノードタイプに対応する CPU プラットフォームを使用します。

gcloud

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

    gcloud compute zones describe ZONE
    

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

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

    gcloud compute zones describe europe-west10-a
    availableCpuPlatforms:
    - Intel Broadwell
    - Intel Cascade Lake
    - Intel Ice Lake
    - AMD Milan
    - AMD Rome
    - Intel Skylake
    
    ...
    

REST

  • 検討しているゾーンに GET リクエストを行います。

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

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

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

    {
      "kind": "compute#zone",
      "id": "2210",
      "creationTimestamp": "1969-12-31T09:30:55.189-07:00",
      "name": "europe-west10-a",
      "description": "europe-west10-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/europe-west10-a",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/europe-west10-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Cascade Lake",
       "Intel Ice Lake",
       "AMD Milan",
       "AMD Rome",
       "Intel Skylake"
      ],
      "supportsPzs": true
     }

CPU プラットフォームのデフォルトの変更

Google は CPU プラットフォームを変更したり、デフォルトの CPU プラットフォームを更新したりすることがあります。ゾーンの容量が増加すると、Google は新しい CPU プラットフォームが利用可能になると、そのプラットフォームにプロアクティブに切り替えます。これにより、デフォルトの CPU プラットフォームが、そのゾーンで利用可能な次に新しいプラットフォームに更新されます。

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

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

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

VM を作成するときに、マシンシリーズとマシンタイプを選択します。マシンシリーズは、複数の CPU プラットフォームで提供される場合があります。この場合、VM で使用する最小 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 に置き換えます。

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

REST

  • instances.insert メソッドを使用し、リクエスト本文の一部として 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: 新しい VM の名前
    • ZONE: VM を作成するゾーンの名前(例: europe-west1-b
    • MACHINE_TYPE: 新しい VM のマシンタイプ
    • PLATFORM: VM に使用する最小 CPU プラットフォームのわかりやすい名前(例: Intel Ivy Bridge

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

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

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

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

既存の VM に最小 CPU プラットフォームを設定できます。最小 CPU プラットフォームを設定する前に、VM を停止する必要があります。

コンソール

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

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

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

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

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

  5. VM を編集するには、[編集] をクリックします。

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

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

  8. 変更を保存します。

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

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

gcloud

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

    gcloud compute instances stop INSTANCE
    

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

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

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

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

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

    gcloud compute instances start INSTANCE
    

REST

  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 プラットフォームを指定する VM の名前
  2. 最小 CPU プラットフォームを設定するには、setMinCpuPlatform メソッドに対して POST リクエストを作成し、リクエストの本文には minCpuPlatform プロパティを設定します。

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

    PLATFORM は、VM に使用する最小 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 プラットフォームを使用するように VM を更新できます。VM が実行されている場合は、変更する前に停止する必要があります。

コンソール

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

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

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

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

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

  5. VM を編集するには、[編集] をクリックします。

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

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

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

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

gcloud

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

    gcloud compute instances stop INSTANCE
    

    INSTANCE は、変更する VM の名前に置き換えます。

  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
    

REST

  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: 変更する VM の名前
  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

REST

  • instanceTemplates.insert メソッドを使用して新しいインスタンス テンプレートを作成するために、リクエストの一部として minCpuPlatform を追加します。

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

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

次のステップ