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

このドキュメントでは、基本となる最小 CPU プラットフォーム(minCpuPlatform)が使用可能な場合はいつでもそれを使用できるように仮想マシン インスタンスを作成または更新する方法について説明します。

Google データセンターは、Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake CPU プラットフォームを含む Intel Xeon ベースのホストマシンを提供します。各 CPU プラットフォームは、AVX-2、AVX-512 などの増分機能をサポートしています。クロック速度やメモリアクセス シーク時間などの基本的なシステム関連機能は、CPU プラットフォームによって異なる場合があります。さまざまなゾーンで複数の CPU プラットフォームがサポートされています。プラットフォームの最小選択を用いて、ワークロードの特定のニーズをサポートするように VM インスタンスの CPU プラットフォームを選択できます。

各ゾーンで使用できる CPU プラットフォームの詳細については、リージョンとゾーンに関するドキュメントをご覧ください。

始める前に

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

たいていの場合、VM に最小 CPU プラットフォームを選択する必要はありません。Compute Engine の各ゾーンにはデフォルトの CPU プラットフォームがあり、リージョンとゾーンのドキュメントに記載されています。新たに作成された VM に最小 CPU が指定されていない場合、デフォルトの CPU プラットフォームが自動的に取得されます。

最小 CPU プラットフォームを選択するのは、ワークロードのパフォーマンスが大幅に向上する場合や、コードによって使用される AVX2、AVX512、MPX などの特定の機能が提供される場合に限ることをおすすめします。VM に特定の最小 CPU プラットフォームを選択すると新たな制約が加わり、CPU プラットフォームの提供が限られているゾーンでは VM を起動する機能に影響が生じます。

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

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

  1. Compute Engine では、最小 CPU プラットフォームが使用可能な場合はいつでもそれが使用されます。
  2. Compute Engine で CPU プラットフォームがゾーンから廃止されると、VM を停止し、再起動した後も、VM はそのゾーンで使用できる適した CPU プラットフォームで実行し続けることができます。CPU プラットフォームが廃止されることはまれであり、事前に通知されます。

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

  • VM を停止して選択した CPU プラットフォームを別のオプションに変更しない限り、VM はこの CPU プラットフォームを使用します。
  • ライブ マイグレーション時には、選択した同じ CPU プラットフォームが VM に保持されます。
  • 場合によっては、Google がゾーンのデフォルト CPU プラットフォームを更新することがあります。詳細については、デフォルトの CPU プラットフォームの廃止またはアップグレードをご覧ください。

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

以下の理由で、Google が古い CPU プラットフォームを廃止したり、特定のゾーンでデフォルトの CPU プラットフォームを更新したりすることがあります。

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

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

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

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

仕様

制限事項

  • 事前定義されたマシンタイプ f1-small と g1-small は共有コアの汎用 VM です。これらのマシンタイプには、CPU プラットフォームの選択オプションは用意されていません。

対象

特定の CPU プラットフォームを使用できるかどうかは、各ゾーンで使用可能なハードウェアに応じてゾーンごとに異なります。以下は、サポートされている最小 CPU プラットフォームと、各プラットフォームに対して使用される有効な構文をまとめたものです。

  • 2.6 GHz の Intel Xeon E5(Sandy Bridge)プロセッサ: "Intel Sandy Bridge"
  • 2.5 GHz の Intel Xeon E5 v2(Ivy Bridge)プロセッサ: "Intel Ivy Bridge"
  • 2.3 GHz の Intel Xeon E5 v3(Haswell)プロセッサ: "Intel Haswell"
  • 2.2 GHz の Intel Xeon E5 v4(Broadwell)プロセッサ: "Intel Broadwell"
  • 2.0 GHz の Intel Xeon(Skylake)プロセッサ: "Intel Skylake"

複数の CPU プラットフォームが用意され最小 CPU プラットフォームを選択できるゾーンは、特定のゾーンに限られます。それらの情報を網羅したリストについは、リージョンとゾーンのページをご覧ください。

gcloud compute zones describe コマンドを使用するか、API にリクエストすることによって、特定のゾーンでサポートされるプラットフォームのリストをいつでも表示できます。

gcloud

たとえば、次のコマンドを実行すると、us-west1-a ゾーンの CPU プラットフォームのリストを表示できます。

gcloud compute zones describe us-west1-a

availableCpuPlatforms:
- Intel Broadwell
- Intel Haswell
...

API

API で、目的のゾーンに対し GET リクエストを発行します。

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

レスポンスとして、そのゾーンでサポートされている 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 プラットフォームは、インスタンスの作成時に指定することができます。

Console

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

    [VM インスタンス] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [マシンタイプ] セクションで、[カスタマイズ] をクリックします。
  5. [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
  6. インスタンス作成の残りのプロセスを実行します。

gcloud

gcloud コマンドライン ツールを使用して最小 CPU プラットフォームで新しい VM を作成するには、新しい --min-cpu-platform フラグを指定します。CPU プラットフォームを指定する際は、そのプラットフォームに対して、Intel BroadwellIntel Haswell などのわかりやすい名前を設定します。各ゾーンで使用可能なプラットフォームは、使用可能なゾーンのセクションを使用して判別します。

たとえば、Intel Haswell の最小 CPU プラットフォームを指定する場合は、次のようになります。

gcloud compute instances create example-instance --zone europe-west1-b --min-cpu-platform "Intel Haswell"

API

Compute Engine API で、リクエストの本文中に minCpuPlatform プロパティを指定します。minCpuPlatform の値には、Intel HaswellIntel BroadwellIntel Sandy Bridge など、プラットフォームに対して設定したわかりやすい名前を指定する必要があります。

以下に示すのは、リクエスト本文の例です。

  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "minCpuPlatform": "Intel Haswell",
  "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]"
     }
   }]

停止した VM の最小 CPU プラットフォームの設定

既存のインスタンスに対しても、そのインスタンスを停止すれば、最小 CPU プラットフォームを設定することができます。

インスタンスを停止したら、以下の手順に沿って最小 CPU プラットフォームを設定します。設定後は必ずインスタンスを再起動してください。

Console

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

    [VM インスタンス] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. 変更する停止したインスタンスを選択します。
  4. [編集] をクリックしてインスタンスを編集します。
  5. [マシンタイプ] セクションで、[カスタマイズ] をクリックします。
  6. [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
  7. 変更を保存します。
  8. インスタンスを再起動します。

gcloud

--min-cpu-platform フラグを指定した update サブコマンドを使用します。プラットフォームには Intel HaswellIntel BroadwellIntel Sandy Bridge などのわかりやすい名前を指定します。次に例を示します。

gcloud compute instances update [INSTANCE_NAME] --min-cpu-platform "Intel Haswell"

API

API で最小 CPU プラットフォームを設定する場合は、setMinCpuPlatform メソッドに対して POST リクエストを発行します。その際、リクエストの本文中に minCpuPlatform プロパティを指定します。このプロパティの値には、Intel HaswellIntel BroadwellIntel Sandy Bridge など、CPU プラットフォームに対して設定したわかりやすい名前を指定します。次に例を示します。

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

{
  "minCpuPlatform": "Intel Haswell"
}

インスタンス テンプレートを使用した最小 CPU プラットフォームの指定

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

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

Console

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

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

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. [インスタンス テンプレートを作成] をクリックします。
  4. [マシンタイプ] セクションで、[カスタマイズ] をクリックします。
  5. [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
  6. インスタンス テンプレート作成処理を続けます。

gcloud

インスタンス テンプレートを作成する場合は、gcloud ツールを使用して --min-cpu-platform フラグを指定します。次に例を示します。

gcloud compute instance-templates create example-template \
    --min-cpu-platform "Intel Haswell"

API

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

以下に示すのは、インスタンス テンプレートの例です。minCpuPlatform プロパティを追加したテンプレートを新規作成する際に最低限必要となるフィールドが指定されています。

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

次のステップ

フィードバックを送信...

Compute Engine ドキュメント