A3 High または A3 Mega を使用して AI 最適化インスタンスを一括作成する

このドキュメントでは、A3 High または A3 Mega アクセラレータ最適化マシンタイプを使用する仮想マシン(VM)インスタンスを一括作成する方法について説明します。マシンタイプの詳細については、Compute Engine ドキュメントの A3 HighA3 Mega をご覧ください。

VM の一括作成の詳細については、Compute Engine ドキュメントの VM の一括作成についてをご覧ください。

VM またはクラスタを作成する他の方法については、概要をご覧ください。

始める前に

VM を一括作成する前に、次の手順を完了します(まだ完了していない場合)。

  1. 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。

    詳細については、使用オプションを選択するをご覧ください。

  2. 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。

    選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。

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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

これらの権限は、カスタムロールや他の事前定義ロールを使用して取得することもできます。

概要

a3h-or-a3m マシンタイプを使用してインスタンスを一括作成する手順は次のとおりです。

  1. VPC ネットワークを作成する
  2. 省略可: コンパクト プレースメント ポリシーを作成する
  3. インスタンスを一括作成する

VPC ネットワークを作成する

GPU VM の効率的な通信を有効にするには、管理ネットワークと 1 つ以上のデータ ネットワークを作成する必要があります。管理ネットワークは、外部アクセス(SSH など)と一般的なネットワーク通信のほとんどに使用されます。データ ネットワークは、異なる VM の GPU 間の高パフォーマンス通信(リモート ダイレクト メモリアクセス(RDMA)トラフィックなど)に使用されます。

これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定することをおすすめします。MTU 値を大きくすると、パケットサイズが大きくなり、パケット ヘッダーのオーバーヘッドが減少するため、ペイロードのデータ スループットが向上します。 VPC ネットワークの作成方法の詳細については、ジャンボ フレーム MTU ネットワークの作成と確認をご覧ください。

管理ネットワーク、サブネット、ファイアウォール ルールを作成する

管理ネットワークを設定するには、次の手順で操作します。

  1. networks create コマンドを使用して、管理ネットワークを作成します。

    gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
  2. networks subnets create コマンドを使用して、管理サブネットを作成します。

    gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-mgmt-net \
        --region=REGION \
        --range=192.168.0.0/24
    
  3. firewall-rules create コマンドを使用して、ファイアウォール ルールを作成します。

    1. 管理ネットワークのファイアウォール ルールを作成します。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:0-65535,udp:0-65535,icmp \
          --source-ranges=192.168.0.0/16
      
    2. tcp:22 ファイアウォール ルールを作成して、SSH を使用して VM に接続できる送信元 IP アドレスを制限します。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=SSH_SOURCE_IP_RANGE
      
    3. ネットワーク内のデータ転送の問題を確認するために使用できる icmp ファイアウォール ルールを作成します。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=0.0.0.0/0
      

次のように置き換えます。

  • NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。
  • PROJECT_ID: プロジェクト ID。
  • REGION: ネットワークを作成するリージョン。
  • SSH_SOURCE_IP_RANGE: CIDR 形式の IP 範囲。 SSH を使用して VM に接続できる送信元 IP アドレスを指定します。

データ ネットワーク、サブネット、ファイアウォール ルールを作成する

データ ネットワークの数は、作成する GPU マシンのタイプによって異なります。

A3 Mega

A3 Mega には 8 つのデータ ネットワークが必要です。それぞれサブネットとファイアウォール ルールを持つ 8 つのデータ ネットワークを作成するには、次のコマンドを使用します。

for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

A3 High

A3 High には 4 つのデータ ネットワークが必要です。次のコマンドを使用して、それぞれサブネットとファイアウォール ルールを持つ 4 つのデータ ネットワークを作成します。

for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

省略可: コンパクト プレースメント ポリシーを作成する

コンパクト プレースメント ポリシーを作成して、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: コンパクト プレースメント ポリシーを作成するリージョン。使用するマシンタイプが利用可能なリージョンを指定します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。

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: プロジェクト ID
  • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  • MAX_DISTANCE: VM 間の最大距離構成。値は、VM を隣接するブロックに配置する場合は 3、VM を同じブロックに配置する場合は 2 にする必要があります。マシンシリーズごとの maxDistance でサポートされる VM の最大数については、Compute Engine ドキュメントのコンパクト プレースメント ポリシーについてをご覧ください。
  • REGION: コンパクト プレースメント ポリシーを作成するリージョン。使用するマシンタイプが利用可能なリージョンを指定します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。

A3 High または A3 Mega VM を一括作成する

A3 High VM または A3 Mega VM を一括で作成するには、次のいずれかの方法を使用します。

次のコマンドは、インスタンスのアクセス スコープも設定します。権限管理を簡素化するには、インスタンスのアクセス スコープを cloud-platform アクセスに設定し、IAM ロールを使用してインスタンスがアクセスできるサービスを定義することをおすすめします。詳細については、スコープのベスト プラクティスをご覧ください。

gcloud

A3 High または A3 Mega VM を作成するには、gcloud compute instances bulk create コマンドを使用します。

A3 Mega

VM を一括作成するには、 gcloud compute instances bulk 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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

次の手順を行います。

  1. 次のように置き換えます。

    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 Mega マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用して自動更新を無効にするか、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージを使用することを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用し、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージには rocky-linux-accelerator-cloud を使用します。
    • REGION: 使用するマシンタイプが使用可能なリージョンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
      • 複数のブロックにまたがってインスタンスを作成する場合、または単一のブロックにインスタンスを作成する場合:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        また、単一のブロックの場合は、ブロック コロケーション(maxDistance=2)を指定するコンパクト プレースメント ポリシーを適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

      • 特定のブロックにインスタンスを作成するには:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次のフラグをコマンドに追加します。

      --resource-policies=POLICY_NAME
    

    次のように置き換えます。

    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. コマンドを実行します。

スポット

コマンドを実行する前に、必要に応じてコンパクト プレースメント ポリシーのフラグを追加します。

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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

次の手順を行います。

  1. 次のように置き換えます。

    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 Mega マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用して自動更新を無効にするか、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージを使用することを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用し、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージには rocky-linux-accelerator-cloud を使用します。
    • REGION: 使用するマシンタイプが使用可能なリージョンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次のフラグをコマンドに追加します。

      --resource-policies=POLICY_NAME
    

    次のように置き換えます。

    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. コマンドを実行します。

A3 High

VM を一括作成するには、 gcloud compute instances bulk 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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

次の手順を行います。

  1. 次のように置き換えます。

    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 High マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • REGION: 使用するマシンタイプが使用可能なリージョンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
      • 複数のブロックにまたがってインスタンスを作成する場合、または単一のブロックにインスタンスを作成する場合:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        また、単一のブロックの場合は、ブロック コロケーション(maxDistance=2)を指定するコンパクト プレースメント ポリシーを適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

      • 特定のブロックにインスタンスを作成するには:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次のフラグをコマンドに追加します。

      --resource-policies=POLICY_NAME
    

    次のように置き換えます。

    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. コマンドを実行します。

スポット

コマンドを実行する前に、必要に応じてコンパクト プレースメント ポリシーのフラグを追加します。

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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

次の手順を行います。

  1. 次のように置き換えます。

    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 High マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • REGION: 使用するマシンタイプが使用可能なリージョンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次のフラグをコマンドに追加します。

      --resource-policies=POLICY_NAME
    

    次のように置き換えます。

    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. コマンドを実行します。

REST

A3 High VM または A3 Mega VM を作成するには、instances.bulkInsert メソッドを使用します。

A3 Mega

VM を一括作成するには、 instances.bulkInsert メソッドPOST リクエストを送信します。

指定する必要があるパラメータは、このデプロイで使用している使用オプションによって異なります。消費オプションのプロビジョニング モデルに対応するタブを選択します。

予約で制限

リクエストを送信する前に、必要に応じて、コンパクト プレースメント ポリシーinstanceProperties サブフィールドをリクエスト本文に追加します。

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":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

次の手順を行います。

  1. 次のように置き換えます。

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • VM_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用し、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージには rocky-linux-accelerator-cloud を使用します。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 Mega マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用して自動更新を無効にするか、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージを使用することを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
      • 複数のブロックにまたがってインスタンスを作成する場合、または単一のブロックにインスタンスを作成する場合:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        また、単一のブロックの場合は、ブロック コロケーション(maxDistance=2)を指定するコンパクト プレースメント ポリシーを適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

      • 特定のブロックにインスタンスを作成するには:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次の instanceProperties サブフィールドをリクエスト本文に追加します。

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    次のように置き換えます。

    • PROJECT_ID: コンパクト プレースメント ポリシーのプロジェクト ID。
    • REGION: コンパクト プレースメント ポリシーのリージョン。
    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. リクエストを送信します。

スポット

リクエストを送信する前に、必要に応じて、コンパクト プレースメント ポリシーinstanceProperties サブフィールドをリクエスト本文に追加します。

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":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

次の手順を行います。

  1. 次のように置き換えます。

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • VM_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用し、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージには rocky-linux-accelerator-cloud を使用します。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 Mega マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用して自動更新を無効にするか、rocky-linux-8-optimized-gcp-nvidia-580 Rocky Linux イメージを使用することを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次の instanceProperties サブフィールドをリクエスト本文に追加します。

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    次のように置き換えます。

    • PROJECT_ID: コンパクト プレースメント ポリシーのプロジェクト ID。
    • REGION: コンパクト プレースメント ポリシーのリージョン。
    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. リクエストを送信します。

A3 High

VM を一括作成するには、 instances.bulkInsert メソッドPOST リクエストを送信します。

指定する必要があるパラメータは、このデプロイで使用している使用オプションによって異なります。消費オプションのプロビジョニング モデルに対応するタブを選択します。

予約で制限

リクエストを送信する前に、必要に応じて、コンパクト プレースメント ポリシーinstanceProperties サブフィールドをリクエスト本文に追加します。

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":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

次の手順を行います。

  1. 次のように置き換えます。

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • VM_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 High マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
      • 複数のブロックにまたがってインスタンスを作成する場合、または単一のブロックにインスタンスを作成する場合:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        また、単一のブロックの場合は、ブロック コロケーション(maxDistance=2)を指定するコンパクト プレースメント ポリシーを適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

      • 特定のブロックにインスタンスを作成するには:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次の instanceProperties サブフィールドをリクエスト本文に追加します。

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    次のように置き換えます。

    • PROJECT_ID: コンパクト プレースメント ポリシーのプロジェクト ID。
    • REGION: コンパクト プレースメント ポリシーのリージョン。
    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. リクエストを送信します。

スポット

リクエストを送信する前に、必要に応じて、コンパクト プレースメント ポリシーinstanceProperties サブフィールドをリクエスト本文に追加します。

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":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

次の手順を行います。

  1. 次のように置き換えます。

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: 使用するマシンタイプが使用可能なゾーンを指定します。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • NAME_PATTERN: VM の名前パターン。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 といった名前の VM が --count で指定された VM の数まで生成されます。
    • COUNT: 作成する VM の数。
    • MACHINE_TYPE: VM に使用するマシンタイプ。A4 マシンタイプまたは A3 Ultra マシンタイプを指定します。詳細については、GPU マシンタイプをご覧ください。
    • VM_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。
    • DISK_TYPE: ブートディスクのタイプ。hyperdisk-balanced の使用をおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。A3 High マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。サポートされているオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC NIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、次の instanceProperties サブフィールドをリクエスト本文に追加します。

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    次のように置き換えます。

    • PROJECT_ID: コンパクト プレースメント ポリシーのプロジェクト ID。
    • REGION: コンパクト プレースメント ポリシーのリージョン。
    • POLICY_NAME: コンパクト プレースメント ポリシーの名前。
  3. リクエストを送信します。

VM を一括作成する場合の構成オプションの詳細については、Compute Engine ドキュメントの VM を一括作成するをご覧ください。

次のステップ