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

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

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

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

始める前に

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

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

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

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

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

  • Compute Engine は、使用可能な場合は常に、最小 CPU のプラットフォームを使用します。

  • Compute Engine が、あるゾーンの特定の CPU プラットフォームを破棄した場合は、VM の停止と再起動を行うことで、同ゾーンで利用可能な改善された CPU プラットフォームで引き続き稼働できます。CPU プラットフォームの破棄はまれに起こりますが、その場合は事前に通知されます。

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

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

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

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

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

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

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

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

仕様

制限事項

  • 事前定義されたマシンタイプの f1-smallg1-small は、共有コアの汎用 VM です。このマシンタイプでは、CPU プラットフォーム セレクションの選択肢はありません。

対象

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

  • Intel Xeon(Skylake)プロセッサ: "Intel Skylake"
  • Intel Xeon E5(Sandy Bridge)プロセッサ: "Intel Sandy Bridge"
  • インテル Xeon E5 v2(Ivy Bridge)プロセッサ: "Intel Ivy Bridge"
  • Intel Xeon E5 v3(Haswell)プロセッサ: "Intel Haswell"
  • Intel Xeon E5 v4(Broadwell)プロセッサ: "Intel Broadwell"
  • Intel Xeon(Cascade Lake)プロセッサ: "Intel Cascade Lake"

最小 CPU プラットフォーム セレクションに複数の CPU プラットフォームが利用可能なゾーンは、特定のゾーンに限られます単一テナントノードを使用している場合は、ノード テンプレートで定義したノードタイプに対応する CPU プラットフォームが、各ノードによって使用されます。結果として、単一テナントノードを使用する VM に対して最小 CPU プラットフォームは指定できません。

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

gcloud

ゾーンの CPU プラットフォームを表示するには、次のコマンドを実行します。

gcloud compute zones describe [ZONE]

たとえば、次のコマンドを実行するつ、us-west1-a ゾーンの CPU プラットフォームが一覧表示されます。

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

API

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

GET https://compute.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://compute.googleapis.com/compute/v1/projects/myproject/regions/us-west1",
 "selfLink": "https://compute.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. [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
  5. [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
  6. インスタンス作成の残りのプロセスを続けます。

gcloud

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

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

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

最小 CPU プラットフォームの仕様をクリアするには、--min-cpu-platformAUTOMATIC に設定します。

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]"
   }
 }]

最小 CPU プラットフォームの仕様をクリアするには、minCpuPlatformAUTOMATIC に設定します。

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

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

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

Console

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

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

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. 変更する停止したインスタンスを選択します。
  4. [編集] をクリックしてインスタンスを編集します。
  5. [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
  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://compute.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. [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
  5. [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
  6. インスタンス テンプレートの作成プロセスを続けます。

gcloud

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

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

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"
      }
    }
  ]
  }
}

次のステップ