このドキュメントでは、基本となる最小 CPU プラットフォーム(minCpuPlatform
)が使用可能な場合はいつでもそれを使用できるように仮想マシン インスタンスを作成または更新する方法について説明します。
Google データセンターは、Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake CPU プラットフォームを含む Intel Xeon ベースのホストマシンを提供します。各 CPU プラットフォームは、AVX-2、AVX-512 などの増分機能をサポートしています。クロック速度やメモリアクセス シーク時間などの基本的なシステム関連機能は、CPU プラットフォームによって異なる場合があります。さまざまなゾーンで複数の CPU プラットフォームがサポートされています。最小プラットフォーム選択を用いて、ワークロードの特定のニーズをサポートする VM インスタンスの CPU プラットフォームを選択できます。
各ゾーンで使用できる CPU プラットフォームの詳細については、CPU プラットフォームおよびリージョンとゾーンに関するドキュメントをご覧ください。
始める前に
- このガイドのコマンドラインの例を使用する場合、以下を行います。
- gcloud コマンドライン ツールの最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
最小 CPU プラットフォームを選択するケース
たいていの場合、VM に最小 CPU プラットフォームを選択する必要はありません。Compute Engine の各ゾーンにはデフォルトの CPU プラットフォームがあります。デフォルトの CPU プラットフォームは、リージョンとゾーンのドキュメントに記載されています。新たに作成された VM に最小 CPU が指定されていない場合は、デフォルトの CPU プラットフォームが自動的に割り当てられます。
最小 CPU プラットフォームを選択するのは、ワークロードのパフォーマンスが大幅に向上する場合や、コードで使用する AVX2、AVX512、MPX などの特定の機能が提供される場合に限ることをおすすめします。VM に特定の最小 CPU プラットフォームを選択すると新たな制約が加わり、CPU プラットフォームの提供が限られているゾーンで VM を起動できるかどうかに影響が生じます。
最小 CPU プラットフォームの選択の仕組み
最小 CPU プラットフォームを指定すると、次のように動作します。
- Compute Engine では、使用可能な場合は常に最小 CPU のプラットフォームが使用されます。
- Compute Engine がゾーンの特定の CPU プラットフォームを廃止した場合、VM の停止と再起動を行うと、そのゾーンで使用可能な適切な CPU プラットフォーム上で VM を引き続き稼働できます。
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-small と g1-small は共有コアの汎用 VM です。これらのマシンタイプには、CPU プラットフォームの選択オプションは用意されていません。
可用性
特定の CPU プラットフォームを使用できるかどうかは、各ゾーンで使用可能なハードウェアに応じてゾーンごとに異なります。以下に、サポートされている最小 CPU プラットフォームと、各プラットフォームに対して使用される有効な構文を記載します。
- Intel Xeon E5(Sandy Bridge)プロセッサ:
"Intel Sandy Bridge"
- Intel Xeon E5 v2(Ivy Bridge)プロセッサ:
"Intel Ivy Bridge"
- Intel Xeon E5 v3(Haswell)プロセッサ:
"Intel Haswell"
- Intel Xeon E5 v4(Broadwell)プロセッサ:
"Intel Broadwell"
- Intel Xeon(Skylake)プロセッサ:
"Intel Skylake"
複数の CPU プラットフォームが用意されていて、最小 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://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
- [VM インスタンス] ページに移動します。
- プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
- [インスタンスを作成] ボタンをクリックします。
- [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
- [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
- インスタンス作成の残りのプロセスを続けます。
gcloud
gcloud
コマンドライン ツールを使用して最小 CPU プラットフォームを指定した新しい VM を作成するには、新しい --min-cpu-platform
フラグを指定します。CPU プラットフォームを指定する際は、そのプラットフォームに対して、Intel
Broadwell
や Intel 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 Haswell
、Intel Broadwell
、Intel 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
- [VM インスタンス] ページに移動します。
- プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
- 変更する停止したインスタンスを選択します。
- [編集] をクリックしてインスタンスを編集します。
- [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
- [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
- 変更を保存します。
- インスタンスを再起動します。
gcloud
末尾に --min-cpu-platform
フラグを指定した update
サブコマンドを使用します。プラットフォームには Intel Haswell
、Intel Broadwell
、Intel Sandy Bridge
などのわかりやすい名前を指定します。次に例を示します。
gcloud compute instances update [INSTANCE_NAME] \
--min-cpu-platform "Intel Haswell"
API
API で最小 CPU プラットフォームを設定するには、setMinCpuPlatform
メソッドに対して POST
リクエストを実行します。リクエスト本文には minCpuPlatform
プロパティを設定します。このプロパティの値として、Intel Haswell
、Intel Broadwell
、Intel 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
- [インスタンス テンプレート] ページに移動します。
- プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
- [インスタンス テンプレートを作成] をクリックします。
- [マシンの構成] セクションの下にある [CPU プラットフォームと GPU] をクリックします。
- [CPU プラットフォーム] プルダウン メニューからいずれかの項目を選択します。
- インスタンス テンプレートの作成プロセスを続けます。
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"
}
}
]
}
}
次のステップ
- Compute Engine で CPU プラットフォームのリストを表示する。
- リージョンとゾーンについて学習する。
- Windows Server インスタンスまたは SQL Server インスタンスを作成し起動する。
gcloud compute instances create
コマンドを参照する。