このドキュメントでは、互いに独立した同一の多数のハイ パフォーマンス コンピューティング(HPC)仮想マシン(VM)インスタンスを一括作成する方法について説明します。インスタンスは H4D マシンタイプを使用し、予約済みの容量ブロックで実行されます。
VM の一括作成の詳細については、VM の一括作成についてをご覧ください。クラスタ管理機能の強化に予約を使用しないインスタンスを一括作成するには、代わりに VM を一括作成するをご覧ください。
密結合された H4D VM の大規模なクラスタを作成する他の方法については、HPC クラスタの作成の概要をご覧ください。
始める前に
使用オプションを選択する: コンピューティング インスタンスを一括で作成し、クラスタ管理機能を強化するには、カレンダー モードの将来の予約または Spot VM を選択します。
Spot VM を使用する場合、VM がコンパクトに配置されないことがあります。また、Spot VM は必要に応じてプリエンプトされる可能性があり、VM グループのホスト メンテナンス イベントの管理の対象外です。
容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。
詳細については、使用オプションを選択して容量を取得するをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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 を一括で作成するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1) -
Compute ネットワーク管理者(
roles/compute.networkAdmin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、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
これらの権限は、カスタムロールや他の事前定義ロールを使用して取得することもできます。
概要
H4D マシンタイプを使用して HPC インスタンスを一括作成する手順には、次のものがあります。
- 省略可: Virtual Private Cloud ネットワークを作成する。
- 省略可: 同じブロックまたはサブブロックに VM を作成しない場合は、プレースメント ポリシーを作成する。
- H4D インスタンスを一括作成する。
省略可: Virtual Private Cloud ネットワークを作成する
コンピューティング インスタンスを作成するときに、VPC ネットワークとサブネットを指定できます。この構成を省略すると、デフォルトのネットワークとサブネットが使用されます。
- Cloud RDMA を使用するように MIG の H4D インスタンスを構成する場合は、このセクションの手順を完了します。
- Cloud RDMA を使用しない場合は、このセクションをスキップして、代わりにデフォルト ネットワークを使用できます。
H4D インスタンスで Cloud RDMA を使用するには、少なくとも 2 つのネットワーク(ネットワーク インターフェース(NIC)のタイプごとに 1 つ)を構成する必要があります。
- NIC タイプ
GVNIC: 通常の VM 間通信と VM-インターネット間通信の TCP/IP トラフィックとインターネット トラフィックにgveドライバを使用します。 - NIC タイプ
IRDMA: インスタンス間の Cloud RDMA ネットワーキングに IDPF / iRDMA ドライバを使用します。
Cloud RDMA を使用するインスタンスには、
IRDMAインターフェースを 1 つだけ設定できます。最大 8 個のGVNICネットワーク インターフェースをさらに追加して、インスタンスごとに合計 10 個の vNIC を使用できます。インスタンスで使用する Falcon VPC ネットワークを設定するには、ドキュメントに記載されている手順で操作するか、提供されているスクリプトを使用します。
手順ガイド
ネットワークを作成するには、次の操作を行います。
GVNICネットワーク インターフェースのホスト ネットワークを作成するには、VPC ネットワークの作成と管理をご覧ください。GVNICネットワーク インターフェースを 1 つだけ構成する場合は、デフォルトの VPC ネットワークと、インスタンスと同じリージョンにある自動サブネットを使用できます。IRDMAネットワーク インターフェースのネットワークを作成するには、Falcon VPC ネットワーク プロファイルを使用して VPC ネットワークを作成するをご覧ください。Falcon VPC ネットワークの最大伝送単位(MTU)のデフォルト値(8896)を使用します。
スクリプト
インスタンスごとに最大 9 個の gVNIC ネットワーク インターフェースと 1 個の IRDMA ネットワーク インターフェースを作成できます。各ネットワーク インターフェースは、別々のネットワークに接続する必要があります。ネットワークを作成するには、次のスクリプトを使用します。このスクリプトは、gVNIC 用に 2 つのネットワークを作成し、IRDMA 用に 1 つのネットワークを作成します。
- 省略可: スクリプトを実行する前に、Falcon VPC ネットワーク プロファイルを一覧表示して、使用可能なプロファイルがあることを確認します。
gcloud compute network-profiles list
次のコードをコピーして、Linux シェル ウィンドウで実行します。
#!/bin/bash # Set the number of GVNIC interfaces to create. You can create up to 9. NUM_GVNIC=NUMBER_OF_GVNIC # Create regular VPC networks and subnets for the GVNIC interfaces for N in $(seq 0 $(($NUM_GVNIC - 1))); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --region=REGION \ --range=10.$N.0.0/16 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 done # Create SSH firewall rules gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=IP_RANGE # Optional: Create a firewall rule for the external IP address for the # first GVNIC network interface gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=icmp \ --source-ranges=IP_RANGE # Create a Falcon VPC network for the Cloud RDMA network interface gcloud compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create a subnet in the Falcon VPC network gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.2.0.0/16 # offset to avoid overlap with GVNIC subnet ranges次のように置き換えます。
NUMBER_OF_GVNIC: 作成する GVNIC インターフェースの数。1~9 の数値を指定します。GVNIC_NAME_PREFIX: GVNIC NIC タイプを使用する通常の VPC ネットワークとサブネットに使用する名前の接頭辞。REGION: ネットワークを作成するリージョン。これは、Falcon VPC ネットワークの作成時に--network-profileフラグに指定したゾーンに対応している必要があります。たとえば、ゾーンをeurope-west4-bとして指定すると、リージョンはeurope-west4になります。IP_RANGE: SSH ファイアウォール ルールに使用する VPC ネットワーク外の IP アドレス範囲。すべての IPv4 または IPv6 ソースではなく、アクセスを許可する必要がある特定の IP アドレス範囲を指定することをおすすめします。0.0.0.0/0または::/0をソース範囲として使用しないでください。これにより、 Google Cloudの外部にあるソースを含むすべての IPv4 または IPv6 ソースからのトラフィックが許可されるからです。RDMA_NAME_PREFIX: IRDMA NIC タイプを使用する VPC ネットワークとサブネットに使用する名前の接頭辞。ZONE: ネットワークとコンピューティング インスタンスを作成するゾーン。us-central1-aまたはeurope-west4-bを使用します。
省略可: VPC ネットワーク リソースが正常に作成されたことを確認するには、 Google Cloud コンソールでネットワーク設定を確認します。
- Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
- リストで、前の手順で作成したネットワークを検索します。
- サブネット、ファイアウォール ルール、その他のネットワーク設定を表示するには、ネットワークの名前をクリックします。
省略可: プレースメント ポリシーを作成する
コンパクト プレースメント ポリシーを作成して、VM の配置を指定できます。VM にコンパクト プレースメント ポリシーを適用すると、Compute Engine は可能な限り互いに近接した VM をベスト エフォートで作成しようとします。アプリケーションがレイテンシの影響を受けやすく、VM を互いに近接した位置に配置する必要がある(最大近接性)場合は、コンパクト プレースメント ポリシーを作成する際に
コンパクト プレースメント ポリシーを作成するには、次のいずれかのオプションを選択します。maxDistanceフィールド(プレビュー)を指定します。maxDistanceの値を小さくすると、VM が近接した位置に配置されますが、一部の VM が作成されない可能性も高くなります。gcloud
コンパクト プレースメント ポリシーを作成するには、
gcloud beta compute resource-policies create group-placementコマンドを使用します。gcloud beta compute resource-policies create group-placement POLICY_NAME \ --collocation=collocated \ --max-distance=MAX_DISTANCE \ --region=REGION次のように置き換えます。
POLICY_NAME: コンパクト プレースメント ポリシーの名前。MAX_DISTANCE: VM 間の最大距離構成。値は、VM を隣接するブロックに配置する場合は3、VM を同じブロックに配置する場合は2にする必要があります。マシンシリーズごとのmaxDistanceでサポートされる VM の最大数については、Compute Engine ドキュメントのコンパクト プレースメント ポリシーについてをご覧ください。REGION: コンパクト プレースメント ポリシーを作成するリージョン。使用するマシンタイプが利用可能なリージョンを指定します。リージョンについては、利用可能なリージョンとゾーンをご覧ください。
REST
コンパクト プレースメント ポリシーを作成するには、ベータ版の
resourcePolicies.insertメソッドにPOSTリクエストを送信します。リクエストの本文に、COLLOCATEDに設定されたcollocationフィールドと、maxDistanceフィールドを配置します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED", "maxDistance": MAX_DISTANCE } }次のように置き換えます。
PROJECT_ID: プロジェクト IDPOLICY_NAME: コンパクト プレースメント ポリシーの名前。MAX_DISTANCE: VM 間の最大距離構成。値は、VM を隣接するブロックに配置する場合は3、VM を同じブロックに配置する場合は2にする必要があります。マシンシリーズごとのmaxDistanceでサポートされる VM の最大数については、Compute Engine ドキュメントのコンパクト プレースメント ポリシーについてをご覧ください。REGION: コンパクト プレースメント ポリシーを作成するリージョン。使用するマシンタイプが利用可能なリージョンを指定します。リージョンについては、利用可能なリージョンとゾーンをご覧ください。
VM インスタンスを一括作成する
このセクションの手順では、H4D VM を一括作成する方法について説明します。
Cloud RDMA で H4D インスタンスを作成する前に、次の制限事項を確認してください。
- Cloud RDMA ネットワーク インターフェースを持つインスタンスでは、ホスト メンテナンス イベント中にライブ マイグレーションを使用できません。メンテナンス イベント中に終了するようにインスタンスを構成する必要があります。
- gVNIC ネットワーク インターフェースに設定できる IPv6 アドレスは、内部または外部のいずれか一方のみです。両方を設定することはできません。
IRDMA ネットワーク インターフェースと Falcon VPC ネットワークでは、IPv4 アドレスのみを使用できます。
gcloud
VM を一括作成するには、
gcloud compute instances createコマンドを使用します。指定する必要があるパラメータは、このデプロイで使用している使用オプションによって異なります。使用オプションのプロビジョニング モデルに対応するタブを選択します。
予約で制限
まず次の
gcloud compute instances createコマンドを使用します。gcloud compute instances bulk create \ --name-pattern=NAME_PATTERN \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image=project= IMAGE_PROJECT \ --instance-termination=action=DELETE \ --maintenance-policy=TERMINATE \ --region=REGION \ --boot-disk-type=hyperdisk-balanced \ --boot-disk-size=DISK_SIZE次の手順を行います。
次のように置き換えます。
NAME_PATTERN: インスタンスの名前パターン。たとえば、名前パターンにvm-#を使用すると、vm-1やvm-2といった名前のインスタンスが最大で--countフラグで指定された数生成されます。COUNT: 作成するインスタンスの数。MACHINE_TYPE: インスタンスに使用するマシンタイプ。H4D マシンタイプのいずれかを使用します(例:h4d-highmem-192-lssd)。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー(例:rocky-linux-9-optimized-gcp)。サポートされている OS イメージの一覧については、サポートされているオペレーティング システムをご覧ください。IRDMA インターフェースをサポートする OS イメージ バージョンを選択します。
IMAGE_PROJECT: OS イメージのプロジェクト ID(例:rocky-linux-cloud)。REGION: 使用するマシンタイプが使用可能なリージョン(europe-west4など)を指定します。利用可能なリージョンについては、利用可能なリージョンとゾーンをご覧ください。DISK_SIZE: 省略可。ブートディスクのサイズ(GiB)。値は整数で指定してください。
省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、
--resource-policiesフラグを設定します。--resource-policies=POLICY_NAMEPOLICY_NAME は、コンパクト プレースメント ポリシーの名前に置き換えます。
予約を指定するには、次のいずれかを行います。
-
プレースメント ポリシーを使用している場合、または VM を予約ブロック内の任意の場所に配置できる場合は、次のフラグをコマンドに追加します。
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME \RESERVATION_NAME は、予約の名前に置き換えます(例:
h4d-highmem-exfr-prod)。 -
コンパクト プレースメント ポリシーを使用しておらず、インスタンスを特定のブロックに配置する場合は、次のフラグをコマンドに追加します。
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=<RESERVATION_BLOCK_NAME \RESERVATION_BLOCK_NAME は、予約内のブロックの名前(
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1など)に置き換えます。
予約名または使用可能な予約ブロックを確認するには、容量を表示するをご覧ください。
-
-
省略可: Cloud RDMA を使用するようにインスタンスを構成するには、次のようなフラグをコマンドに追加します。この例では、2 つの GVNIC ネットワーク インターフェースと 1 つの IRDMA ネットワーク インターフェースを構成しています。
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \次のように置き換えます。
GVNIC_NAME_PREFIX: GVNIC インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。第 1 の GVNIC ネットワーク インターフェースの場合は、
networkフラグとsubnetフラグを省略して、代わりにdefaultネットワークを使用できます。STACK_TYPE: 省略可。GVNIC ネットワーク インターフェースのスタックタイプ。STACK_TYPEは、IPV4_ONLYまたはIPV4_IPV6のいずれかにする必要があります。デフォルト値はIPV4_ONLYです。EXTERNAL_IPV4_ADDRESS: 省略可。ネットワーク インターフェースで使用する静的外部 IPv4 アドレス。外部 IPv4 アドレスは予約済みであることが必要です。次のいずれかを行います。- サブネットの有効な IPv4 アドレスを指定します。
- ネットワーク インターフェースで外部 IP アドレスを使用しない場合は、代わりにフラグ
no-addressを使用します。 - インターフェースでエフェメラル外部 IP アドレスを受信する場合は、
address=''を指定します。
外部 IPv6 アドレスを指定するには、代わりに
--external-ipv6-addressフラグを使用します。RDMA_NAME_PREFIX: IRDMA インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。
- 省略可: 必要に応じて、追加のフラグを追加して、インスタンスの残りのプロパティをカスタマイズします。
- コマンドを実行します。
スポット
まず次の
gcloud compute instances createコマンドを使用します。gcloud compute instances bulk create \ --name-pattern=NAME_PATTERN \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image=project= IMAGE_PROJECT \ --region=REGION \ --boot-disk-type=hyperdisk-balanced \ --boot-disk-size=DISK_SIZE \ --provisioning-model=SPOT \ --instance-termination=action=TERMINATION_ACTION次の手順を行います。
次のように置き換えます。
NAME_PATTERN: インスタンスの名前パターン。たとえば、名前パターンにvm-#を使用すると、vm-1やvm-2といった名前のインスタンスが最大で--countフラグで指定された数生成されます。COUNT: 作成するインスタンスの数。MACHINE_TYPE: インスタンスに使用するマシンタイプ。H4D マシンタイプのいずれかを使用します(例:h4d-highmem-192-lssd)。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー(例:rocky-linux-9-optimized-gcp)。サポートされている OS イメージの一覧については、サポートされているオペレーティング システムをご覧ください。IRDMA インターフェースをサポートする OS イメージ バージョンを選択します。
IMAGE_PROJECT: OS イメージのプロジェクト ID(例:rocky-linux-cloud)。REGION: 使用するマシンタイプが使用可能なリージョン(europe-west4など)を指定します。利用可能なリージョンについては、利用可能なリージョンとゾーンをご覧ください。DISK_SIZE: 省略可。ブートディスクのサイズ(GiB)。値は整数で指定してください。TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)またはDELETEのいずれかです。
-
省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次のフラグをコマンドに追加します。
--resource-policies=POLICY_NAME \POLICY_NAMEは、コンパクト プレースメント ポリシーの名前に置き換えます。 -
省略可: Cloud RDMA を使用するようにインスタンスを構成するには、次のようなフラグをコマンドに追加します。この例では、2 つの GVNIC ネットワーク インターフェースと 1 つの IRDMA ネットワーク インターフェースを構成しています。
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \次のように置き換えます。
GVNIC_NAME_PREFIX: GVNIC インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。第 1 の GVNIC ネットワーク インターフェースの場合は、
networkフラグとsubnetフラグを省略して、代わりにdefaultネットワークを使用できます。STACK_TYPE: 省略可。GVNIC ネットワーク インターフェースのスタックタイプ。STACK_TYPEは、IPV4_ONLYまたはIPV4_IPV6のいずれかにする必要があります。デフォルト値はIPV4_ONLYです。EXTERNAL_IPV4_ADDRESS: 省略可。ネットワーク インターフェースで使用する静的外部 IPv4 アドレス。外部 IPv4 アドレスは予約済みであることが必要です。次のいずれかを行います。- サブネットの有効な IPv4 アドレスを指定します。
- ネットワーク インターフェースで外部 IP アドレスを使用しない場合は、代わりにフラグ
no-addressを使用します。 - インターフェースでエフェメラル外部 IP アドレスを受信する場合は、
address=''を指定します。
外部 IPv6 アドレスを指定するには、代わりに
--external-ipv6-addressフラグを使用します。RDMA_NAME_PREFIX: IRDMA インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。
- 省略可: 必要に応じて、追加のフラグを追加して、インスタンスの残りのプロパティをカスタマイズします。
- コマンドを実行します。
REST
VM インスタンスを一括作成するには、
instances.bulkInsertメソッドにPOSTリクエストを送信します。指定する必要があるパラメータは、このデプロイで使用している使用オプションによって異なります。使用オプションのプロビジョニング モデルに対応するタブを選択します。
予約で制限
instances.bulkInsertメソッドに対する次のPOSTリクエストから始めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "namePattern":"NAME_PATTERN", "count":"COUNT", "instanceProperties":{ "machineType":"MACHINE_TYPE", "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "scheduling":{ "provisioningModel":"RESERVATION_BOUND", "instanceTerminationAction":"DELETE", "onHostMaintenance": "TERMINATE", "automaticRestart":true } } }次の手順を行います。
次のように置き換えます。
PROJECT_ID: インスタンスを作成するプロジェクトのプロジェクト ID。ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを使用している場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。H4D マシンタイプを利用できるリージョンについては、利用可能なリージョンとゾーンをご覧ください。NAME_PATTERN: インスタンスの名前パターン。たとえば、名前パターンにvm-#を使用すると、vm-1やvm-2といった名前のインスタンスが最大でcountフィールドで指定された数生成されます。COUNT: 作成するインスタンスの数。MACHINE_TYPE: インスタンスに使用するマシンタイプ。H4D マシンタイプのいずれかを使用します(例:h4d-highmem-192-lssd)。DISK_SIZE: ブートディスクのサイズ(GiB)。IMAGE_PROJECT: OS イメージのプロジェクト ID(例:debian-cloud)。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー(例:rocky-linux-9-optimized-gcp)。サポートされている OS イメージの一覧については、サポートされているオペレーティング システムをご覧ください。IRDMA インターフェースをサポートする OS イメージ バージョンを選択します。
省略可: コンパクト プレースメント ポリシーを使用する場合は、
"instanceProperties"パラメータの一部として、リクエスト本文にresourcePoliciesパラメータを設定します。"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],POLICY_NAME は、コンパクト プレースメント ポリシーの名前に置き換えます。
-
予約を指定するには、次のいずれかを行います。
-
プレースメント ポリシーを使用している場合、または VM を予約ブロック内の任意の場所に配置できる場合は、
"instanceProperties"パラメータの一部として、次の内容をリクエスト本文に追加します。"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_NAME" ], },RESERVATION_NAME は、予約の名前に置き換えます(例:
h4d-highmem-exfr-prod)。 -
コンパクト プレースメント ポリシーを使用していない場合や、インスタンスを特定のブロックに配置する場合は、
"instanceProperties"パラメータの一部として、次の内容をリクエスト本文に追加します。"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_BLOCK_NAME" ], },RESERVATION_BLOCK_NAME は、予約内のブロックの名前(
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1など)に置き換えます。
予約名または使用可能な予約ブロックを確認するには、容量を表示するをご覧ください。
-
Cloud RDMA を使用するようにインスタンスを構成する場合は、
"instanceProperties"パラメータの一部として、次のパラメータ ブロックと同様のものをリクエスト本文に配置します。この例では、2 つの GVNIC ネットワーク インターフェースと 1 つの IRDMA ネットワーク インターフェースを構成しています。"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],次のように置き換えます。
GVNIC_NAME_PREFIX: GVNIC インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。GVNIC ネットワーク インターフェースの場合、
networkフィールドとsubnetworkフィールドを省略して、代わりにdefaultネットワークを使用できます。EXTERNAL_IPV4_ADDRESS: 省略可。ネットワーク インターフェースで使用する静的外部 IPv4 アドレス。外部 IPv4 アドレスは予約済みであることが必要です。RDMA_NAME_PREFIX: IRDMA インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。
- 省略可: 必要に応じて、インスタンスの残りのプロパティをカスタマイズします。
- リクエストを送信します。
スポット
instances.bulkInsertメソッドに対する次のPOSTリクエストから始めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "namePattern":"NAME_PATTERN", "count":"COUNT", "instanceProperties":{ "machineType":"MACHINE_TYPE", "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "scheduling":{ "provisioningModel":"SPOT", "instanceTerminationAction":"TERMINATION_ACTION" } } }次の手順を行います。
次のように置き換えます。
PROJECT_ID: インスタンスを作成するプロジェクトのプロジェクト ID。ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを使用している場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。H4D マシンタイプを利用できるリージョンについては、利用可能なリージョンとゾーンをご覧ください。NAME_PATTERN: インスタンスの名前パターン。たとえば、名前パターンにvm-#を使用すると、vm-1やvm-2といった名前のインスタンスが最大でcountフィールドで指定された数生成されます。COUNT: 作成するインスタンスの数。MACHINE_TYPE: インスタンスに使用するマシンタイプ。H4D マシンタイプのいずれかを使用します(例:h4d-highmem-192-lssd)。DISK_SIZE: ブートディスクのサイズ(GiB)。IMAGE_PROJECT: OS イメージのプロジェクト ID(例:debian-cloud)。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー(例:rocky-linux-9-optimized-gcp)。サポートされている OS イメージの一覧については、サポートされているオペレーティング システムをご覧ください。IRDMA インターフェースをサポートする OS イメージ バージョンを選択します。TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)またはDELETEのいずれかです。
省略可: コンパクト プレースメント ポリシーを使用する場合は、
"instanceProperties"パラメータの一部としてresourcePoliciesパラメータを設定します。"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]Cloud RDMA を使用するようにインスタンスを構成する場合は、
"instanceProperties"パラメータの一部として、次のパラメータ ブロックと同様のものをリクエスト本文に配置します。この例では、2 つの GVNIC ネットワーク インターフェースと 1 つの IRDMA ネットワーク インターフェースを構成しています。"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],次のように置き換えます。
GVNIC_NAME_PREFIX: GVNIC インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。GVNIC ネットワーク インターフェースの場合、
networkフィールドとsubnetworkフィールドを省略して、代わりにdefaultネットワークを使用できます。EXTERNAL_IPV4_ADDRESS: 省略可。ネットワーク インターフェースで使用する静的外部 IPv4 アドレス。外部 IPv4 アドレスは予約済みであることが必要です。RDMA_NAME_PREFIX: IRDMA インターフェースの VPC ネットワークとサブネットの作成時に使用した名前の接頭辞。
- 省略可: 必要に応じて、インスタンスの残りのプロパティをカスタマイズします。
- リクエストを送信します。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-12-25 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"]],["最終更新日 2025-12-25 UTC。"],[],[]] -