このドキュメントでは、仮想マシン(VM)を一括で作成するときにインスタンスの柔軟性を指定する方法について説明します。この仕様を行う場合は、VM に適したマシンタイプのリストを指定します。Compute Engine は、リージョンの容量と割り当ての可用性に基づいて、指定されたマシンタイプのいずれかを使用して VM をプロビジョニングします。
一括作成された VM のインスタンスの柔軟性については、一括作成された VM のインスタンスの柔軟性についてをご覧ください。
始める前に
- 作成する予定の VM と関連リソースについては、十分な割り当てと必要な権限があることを確認してください。
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
VM の一括作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1)の IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、VM の一括作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM を一括作成するには、次の権限が必要です。
- プロジェクトに対する
compute.instances.create -
カスタム イメージを使用して VM を作成する: イメージに対する
compute.images.useReadOnly -
スナップショットを使用して VM を作成する: スナップショットに対する
compute.snapshots.useReadOnly -
インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する
compute.instanceTemplates.useReadOnly -
VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.use -
VM の静的 IP アドレスを指定する: プロジェクトに対する
compute.addresses.use -
VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.useExternalIp -
VM にレガシー ネットワークを割り当てる: プロジェクトに対する
compute.networks.use -
レガシー ネットワークを使用する際に VM に外部 IP アドレスを割り当てる: プロジェクトに対する
compute.networks.useExternalIp -
VM の VM インスタンス メタデータを設定する: プロジェクトに対する
compute.instances.setMetadata -
VM にタグを設定する: VM に対する
compute.instances.setTags -
VM にラベルを設定する: VM に対する
compute.instances.setLabels -
VM が使用するサービス アカウントを設定する: VM に対する
compute.instances.setServiceAccount -
VM 用の新しいディスクを作成する: プロジェクトに対する
compute.disks.create -
既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する
compute.disks.use -
既存のディスクを読み取り専用モードでアタッチする: ディスクに対する
compute.disks.useReadOnly
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
同じ優先度の複数のマシンタイプを使用して VM を作成する
ワークロードが複数の異なるマシンタイプで動作できる場合は、互換性のあるすべてのマシンタイプのリストを 1 つのインスタンス選択で指定できます。次の例は、優先度が同じ複数のマシンタイプを指定する方法を示しています。
gcloud
単一のインスタンス選択で VM を一括作成するには、
--instance-selection-machine-typesフラグを指定してgcloud compute instances bulk createコマンドを使用します。gcloud compute instances bulk create \ --name-pattern=test-bulk-# \ --region=REGION \ --count=COUNT \ --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8REST
Compute Engine API で、
regionInstances.bulkInsertメソッドにPOSTリクエストを送信します。リクエストの本文に、マシンタイプを一覧表示する 1 つのinstanceSelectionsエントリを含むinstanceFlexibilityPolicyを含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "selection-1": { "machineTypes": [ "c3-standard-8", "n2-standard-8", "c2-standard-8" ] } } } }次のように置き換えます。
COUNT: 作成する VM の数。PROJECT_ID: プロジェクト ID。REGION: VM を作成するリージョン。
優先度でランク付けされた複数のマシンタイプを使用して VM を作成する
Compute Engine でマシンタイプを特定の順序で選択する場合は、複数のインスタンス選択を構成できます。各インスタンス選択には、マシンタイプのリストとランクが含まれます。ランクは、マシンタイプの優先度を定義する整数です。ランクが低いほど、優先度が高くなります。Compute Engine は、優先度の高い(ランクの低い)マシンタイプを使用して VM の作成を試みます。これらのマシンタイプを使用できない場合、Compute Engine は優先度の低い(ランクの高い)マシンタイプを使用します。
次の例は、ランクを使用して複数のインスタンス選択を指定する方法を示しています。
gcloud
複数のインスタンス選択を使用して VM を一括作成するには、
gcloud compute instances bulk createコマンドを使用し、--instance-selectionフラグを複数回指定します。gcloud beta compute instances bulk create \ --name-pattern=test-bulk-# \ --region=REGION \ --count=COUNT \ --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16, machine-type=c2-standard-16" \ --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8, machine-type=c2-standard-8"REST
Compute Engine API で、
regionInstances.bulkInsertメソッドにPOSTリクエストを送信します。リクエストの本文にinstanceFlexibilityPolicyを含め、instanceSelectionsに複数のエントリを指定します。各エントリには、マシンタイプのリストとrankを指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "most-preferred": { "machineTypes": [ "c3-standard-16", "c2-standard-16" ], "rank": 1 }, "least-preferred": { "machineTypes": [ "n2-standard-16", "c3-standard-8", "n2-standard-8", "c2-standard-8" ], "rank": 2 } } } }次のように置き換えます。
COUNT: 作成する VM の数。PROJECT_ID: プロジェクト ID。REGION: VM を作成するリージョン。
インスタンスの選択でディスクのオーバーライドを指定する
デフォルトでは、一括リクエストで作成された VM は
instancePropertiesのディスク構成を使用します。ただし、インスタンス選択内でディスク構成を指定できます。インスタンス選択でディスクを指定すると、そのディスク構成は、そのインスタンス選択を使用する VM のinstancePropertiesのディスク構成をオーバーライドします。次の例は、インスタンス選択でディスクを指定する方法を示しています。
REST
Compute Engine API で、
regionInstances.bulkInsertメソッドにPOSTリクエストを送信します。リクエストの本文にinstanceFlexibilityPolicyを含め、instanceSelectionsエントリごとにdisksフィールドを含めてinstanceProperties.disksをオーバーライドします。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "selection-1": { "machineTypes": [ "n2-standard-8", "c2-standard-8" ], "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskType": "pd-ssd", "diskSizeGb": 50, "sourceImage": "IMAGE_URL" }, "boot": true }, { "type": "SCRATCH", "initializeParams": { "diskType": "local-ssd" } } ] }, "selection-2": { "machineTypes": [ "c3-standard-8" ], "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskType": "hyperdisk-balanced", "diskSizeGb": 50, "sourceImage": "IMAGE_URL" }, "boot": true }, { "type": "PERSISTENT", "initializeParams": { "diskType": "hyperdisk-balanced", "diskSizeGb": 128, "sourceImage": "IMAGE_URL" } } ] } } } }次のように置き換えます。
COUNT: 作成する VM の数。IMAGE_URL: ブートディスク イメージの URL。PROJECT_ID: プロジェクト ID。REGION: VM を作成するリージョン。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2026-02-11 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2026-02-11 UTC。"],[],[]] -