A3 Edge を使用して AI 最適化インスタンスを作成する

このドキュメントでは、A3 Edge アクセラレータ最適化マシンタイプを使用するスタンドアロン仮想マシン(VM)インスタンスを作成する手順について説明します。マシンタイプの詳細については、A3 Edge をご覧ください。

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

制限事項

スタンドアロン A3 Edge VM を作成する場合、次の制限が適用されます。

  • A3 Edge マシンタイプを使用するインスタンスは、継続利用割引フレキシブル確約利用割引の対象外となります。
  • A3 Edge マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
  • A3 Edge マシンタイプを使用するインスタンスでは、リージョン Persistent Disk を使用できません。
  • A3 Edge マシンタイプは、Sapphire Rapids CPU プラットフォームでのみ使用できます。
  • A3 Edge マシンタイプでは、マシンタイプの変更はサポートされていません。このマシンタイプに切り替えるには、新しいインスタンスを作成する必要があります。
  • A3 Edge マシンタイプでは Windows オペレーティング システムを実行できません。
  • A3 Edge マシンタイプは、単一テナンシーをサポートしません。
コンパクト プレースメント ポリシーを使用する場合は、プレースメント ポリシーの制限事項を確認してください。

始める前に

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

  1. 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。詳細については、使用オプションを選択するをご覧ください。
  2. 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。

このページのサンプルをどのように使うかに応じて、タブを選択してください。

コンソール

Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

gcloud

Google Cloud コンソールで Cloud Shell をアクティブにします。

Cloud Shell をアクティブにする

Google Cloud コンソールの下部にある Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

REST

このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

    Google Cloud CLI をインストールします。

    外部 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

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

概要

A3 Edge マシンタイプを使用してインスタンスを作成する手順は次のとおりです。

  1. VPC ネットワークを作成する
  2. 省略可: コンパクト プレースメント ポリシーを作成する
  3. インスタンスを作成する
  4. GPU ドライバをインストールする
  5. 省略可: NVIDIA マルチインスタンス GPU モードを有効にする

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 アドレスを指定します。

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

A3 Edge には 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 をベスト エフォートで作成しようとします。アプリケーションがレイテンシの影響を受けやすく、最大近接性が必要な場合は、コンパクト プレースメント ポリシーを作成するときに 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 間の最大距離構成。指定(プレビュー、推奨)または未指定(--max-distance フラグを削除)のいずれかになります。マシンタイプでサポートされている内容に基づいて、次のいずれかの値を指定できます。
    • VM を同じサブブロックに配置するには: 1
    • VM を同じブロックに配置するには: 2
    • VM を隣接するブロックに配置するには: 3
    最大距離の構成で、作成する予定のマシンシリーズと 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 間の最大距離構成。指定(プレビュー、推奨)または未指定(maxDistance フィールドを削除)のいずれかになります。マシンタイプでサポートされている内容に基づいて、次のいずれかの値を指定できます。
    • VM を同じサブブロックに配置するには: 1
    • VM を同じブロックに配置するには: 2
    • VM を隣接するブロックに配置するには: 3
    最大距離の構成で、作成する予定のマシンシリーズと VM の数がサポートされていることを確認します。詳細については、Compute Engine のドキュメントのコンパクト プレースメント ポリシーについてをご覧ください。
  • REGION: コンパクト プレースメント ポリシーを作成するリージョン。インスタンスを作成するゾーンを含むリージョンを指定し、使用するマシンタイプがそのリージョンで使用可能であることを確認します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。

A3 Edge VM を作成する

A3 Edge VM を作成するには、次のいずれかの方法を使用します。

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

コンソール

  1. Google Cloud コンソールで [インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. VM の名前を指定します。リソースの命名規則をご覧ください。

  3. [リージョン] と [ゾーン] で、VM を作成するリージョンとゾーンをそれぞれ選択します。利用可能な GPU のリージョンとゾーンのリストをご覧ください。

  4. [GPU] タブをクリックして、次の操作を行います。

    1. [GPU のタイプ] リストで、NVIDIA H100 80GB を選択します。
    2. [GPU の数] リストで、8 を選択します。
    3. [マシンタイプ] リストで、a3-edgegpu-8g を選択します。
  5. 使用する消費オプションに基づいて、次のいずれかのオプションを選択し、次の手順を完了します。

    予約

    A3 Edge インスタンスは、次の予約タイプをサポートしています。

    • オンデマンド予約
    • 標準の将来の予約

    これらのタイプの予約を使用するには、インスタンスが標準プロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。

    1. [プロビジョニング モデル] セクションの [VM プロビジョニング モデル] リストで、[標準] を選択します。(このオプションはデフォルトで選択されています)。
    2. この VM が使用する予約を構成するには、次の操作を行います。

      1. ナビゲーション メニューで、[詳細設定] をクリックします。
      2. [予約] で、次のいずれかのオプションを選択します。

        • 予約容量を必要に応じて使用するには、[自動選択を使用する] を選択します。(このオプションはデフォルトで選択されています)。

          インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

        • 予約容量が必要な場合は、[予約を選択] を選択し、[予約を選択] をクリックして、使用する予約を指定します。

          インスタンスは、明示的にターゲット設定された予約の容量を使用する必要があり、オンデマンド容量を使用することはできません。予約容量が使用できない場合、インスタンスの作成は失敗します。

    オンデマンド

    1. [プロビジョニング モデル] セクションの [VM プロビジョニング モデル] リストで、[標準] を選択します。(このオプションはデフォルトで選択されています)。
    2. 省略可: この VM で予約を使用するかどうかを構成するには、次の操作を行います。

      1. ナビゲーション メニューで、[詳細設定] をクリックします。
      2. [予約] で、次のいずれかのオプションを選択します。

        • 予約容量を必要に応じて使用するには、[自動選択を使用する] を選択します。(デフォルトはこの設定です)。

          インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

        • オンデマンド容量が必要な場合は、[予約を使用しない] を選択します。

          インスタンスは予約容量を使用できません。

    Flex Start

    1. [プロビジョニング モデル] セクションの [VM プロビジョニング モデル] リストで、[Flex Start] を選択します。
    2. [時間数を入力] フィールドに、VM を実行する最大時間を入力します。値は 46 秒(0.01)から 7 日間(168、168 時間)の範囲で指定する必要があります。

    3. [VM 作成の待機時間を設定する] を選択します。

      VM 作成リクエストが成功する可能性を高めるため、ワークロードのゾーン要件に基づいて次のいずれかの期間を指定します。

      • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒から 2 時間の間の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
      • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒に指定するか、[VM の作成の待機時間を設定する] チェックボックスをオフにします。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。

    4. [VM の終了時] フィールドで、実行期間の終了時に VM を停止するか削除するかを選択します。

      • VM を削除するには、[削除] を選択します。
      • VM を停止するには、[停止] を選択します。

    スポット

    1. [プロビジョニング モデル] セクションで、[VM プロビジョニング モデル] リストから [Spot] を選択します。
    2. 省略可: Compute Engine が VM をプリエンプトしたときに実行される終了アクションを選択するには、次の手順を完了します。

      1. [VM プロビジョニング モデルの詳細設定] セクションを開きます。
      2. [VM の終了時] リストで、次のいずれかのオプションを選択します。
        • プリエンプション中に VM を停止するには、[停止] を選択します(デフォルト)。
        • プリエンプション中に VM を削除するには [削除] をクリックします。
  6. ナビゲーション メニューで [OS とストレージ] をクリックし、次の手順を完了します。

    1. [変更] をクリックします。[ブートディスクの構成] ペインが開きます。
    2. [公開イメージ] タブで、推奨イメージを選択します。推奨イメージの一覧については、オペレーティング システムをご覧ください。

    3. 省略可: ブートディスクのサイズを構成するには、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。

    4. ブートディスクのオプションを確認するには、[選択] をクリックします。

  7. サービス アカウントとアクセス スコープを次のように構成します。インスタンスで実行されているワークロードは、アタッチされたサービス アカウントを使用して、他の Google Cloud サービスへのリクエストを承認します。

    1. ナビゲーション メニューで [セキュリティ] をクリックします。
    2. [サービス アカウント] リストで、使用するサービス アカウントを選択します。
    3. [アクセス スコープ] で、[すべての Cloud API に完全アクセス権を許可] オプションを選択します。このベスト プラクティスをおすすめする理由は、サービス アカウントから IAM ロールを追加または削除することでアクセスを管理できるためです。詳細については、サービス アカウントをインスタンスに関連付けるをご覧ください。
  8. マルチ NIC VM を作成する手順は次のとおりです。それ以外の場合は、単一 NIC VM を作成するため、これらの手順をスキップします。

    1. ナビゲーション メニューで、[ネットワーキング] をクリックします。

    2. [ネットワーク インターフェース] セクションで、次の操作を行います。

      1. デフォルトのネットワーク インターフェースを削除します。インターフェースを削除するには、[ 削除] をクリックします。
      2. [ネットワーク インターフェースを追加] をクリックします。このオプションを使用して、前のセクションで作成した VPC ネットワークに接続するネットワーク インターフェースを追加します。ネットワーク インターフェースを追加する際は、次の点に注意してください。
        • ホスト間通信に使用されるネットワーク インターフェースの場合は、[ネットワーク] リストと [サブネットワーク] リストから通常の VPC ネットワークとサブネットを選択し、[ネットワーク インターフェース カード] リストで [gVNIC] を選択します。最初のネットワークを除く各ネットワークで、[外部 IP アドレス] リストを [なし] に設定します。
        • GPUDirect-TCPX を使用して GPU 間通信に使用されるネットワーク インターフェースの場合は、インターフェースごとに対応する専用の VPC ネットワークとサブネットを選択し、これらのネットワーク インターフェースの [ネットワーク インターフェース カード] リストで [gVNIC] を選択します。最初のネットワークを除く各ネットワークで、[外部 IP アドレス] リストを [なし] に設定します。
  9. VM を作成して起動するには、[作成] をクリックします。

gcloud

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

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

予約

A3 Edge インスタンスは、次の予約タイプをサポートしています。

  • オンデマンド予約
  • 標準の将来の予約

これらのタイプの予約を使用するには、インスタンスが標準プロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。

コマンドを実行する前に、次のすべての手順を確認して、追加のフラグを含めるかどうかを判断します。

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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=STANDARD \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=RESERVATION_AFFINITY \
    --reservation=RESERVATION

次の手順を行います。

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

    • INSTANCE_NAME: VM の名前。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定するには、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • RESERVATION_AFFINITY: インスタンスが使用できる予約(可能な場合)。次のいずれかを指定します。

      • any(予約容量は省略可): デフォルトのオプションです。インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

      • specific(予約容量が必要): 明示的に対象となっている予約の容量をインスタンスで使用するように要求します。インスタンスにオンデマンド容量の使用が許可されていない。予約容量が使用できない場合、インスタンスの作成は失敗します。

    • RESERVATION: 使用する予約。RESERVATION_AFFINITY に指定した値に基づいて、次のいずれかを指定します。

      • any を指定した場合は、RESERVATION を空の文字列("")に置き換えます。または、--reservation フラグを完全に削除することもできます。
      • specific を指定した場合は、RESERVATION を次のように置き換えます。

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

        • RESERVATION_OWNER_PROJECT_ID: 予約が作成されたプロジェクトのプロジェクト ID。
        • RESERVATION_NAME: 予約の名前。
  2. デフォルトでは、インスタンスがクラッシュした場合、または Compute Engine がメンテナンス イベントなどのプログラムによる停止のためにインスタンスを停止した場合、インスタンスは自動的に再起動します。自動再起動を無効にする場合は、次のフラグを追加します。

    --no-restart-on-failure
  3. 省略可: コンパクト プレースメント ポリシーを使用するには、次のフラグを追加します。

      --resource-policies=POLICY_NAME
    

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

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

オンデマンド

コマンドを実行する前に、次のすべての手順を確認して、追加のフラグを含めるかどうかを判断します。

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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=STANDARD \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=RESERVATION_AFFINITY

次の手順を行います。

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

    • INSTANCE_NAME: VM の名前。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定するには、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • RESERVATION_AFFINITY: インスタンスが使用できる予約(可能な場合)。次のいずれかを指定します。

      • any(予約容量は省略可): デフォルトのオプションです。インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

      • none(オンデマンド容量が必要): インスタンスが予約容量を使用できないようにします。

  2. デフォルトでは、インスタンスがクラッシュした場合、または Compute Engine がメンテナンス イベントなどのプログラムによる停止のためにインスタンスを停止した場合、インスタンスは自動的に再起動します。自動再起動を無効にする場合は、次のフラグを追加します。

    --no-restart-on-failure
  3. 省略可: コンパクト プレースメント ポリシーを使用するには、次のフラグを追加します。

      --resource-policies=POLICY_NAME
    

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

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

Flex Start

コマンドを実行する前に、次のすべての手順を確認して、追加のフラグを含めるかどうかを判断します。

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

次の手順を行います。

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

    • INSTANCE_NAME: VM の名前。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定するには、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REQUEST_VALID_FOR_DURATION: VM の作成リクエストの有効期間。値は、日数、時間、分、秒として指定し、その後にそれぞれ dhms を続ける必要があります。たとえば、30 分の場合は 30m と指定し、1 時間 2 分 3 秒の場合は 1h2m3s と指定します。

      VM 作成リクエストが成功する可能性を高めるため、ワークロードのゾーン要件に基づいて次のいずれかの期間を指定します。

      • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(90s)から 2 時間(2h)の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
      • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(0s)に指定します。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
    • MAX_RUN_DURATION: リクエストされた VM を実行する期間。値は、日数、時間、分、秒として指定し、その後にそれぞれ dhms を続ける必要があります。値は 10 分~7 日の範囲で指定してください。

    • TERMINATION_ACTION: 実行期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するか。

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

      --resource-policies=POLICY_NAME
    

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

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

スポット

コマンドを実行する前に、次のすべての手順を確認して、追加のフラグを含めるかどうかを判断します。

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --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. 次のように置き換えます。

    • INSTANCE_NAME: VM の名前。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。たとえば、cos-121-lts 以降の Container-Optimized OS イメージには cos-cloud を使用します。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定するには、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

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

      --resource-policies=POLICY_NAME
    

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

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

REST

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

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

予約

A3 Edge インスタンスは、次の予約タイプをサポートしています。

  • オンデマンド予約
  • 標準の将来の予約

これらのタイプの予約を使用するには、インスタンスが標準プロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。

リクエストを送信する前に、次のすべての手順を確認して、追加のフィールドを含めるかどうかを判断します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "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": "STANDARD",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": AUTOMATIC_RESTART
  },
  "reservationAffinity": {
    "consumeReservationType": "RESERVATION_AFFINITY",
    "key": "compute.googleapis.com/reservation-name",
    "values": [
      "RESERVATION"
    ]
  }
}

次の手順を行います。

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

    • PROJECT_ID: VM を作成するプロジェクトのプロジェクト ID。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • INSTANCE_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • AUTOMATIC_RESTART: インスタンスがクラッシュした場合、またはメンテナンス イベントなどのプログラムによる停止のために Compute Engine がインスタンスを停止した場合に、インスタンスが自動的に再起動するかどうか。自動再起動を有効にする場合は true(デフォルト)、無効にする場合は false を指定します。

    • RESERVATION_AFFINITY: インスタンスが使用できる予約(可能な場合)。次のいずれかを指定します。

      • ANY_RESERVATION(予約容量は省略可): デフォルトのオプションです。インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

      • SPECIFIC_RESERVATION(予約容量が必要): 明示的に対象となっている予約の容量をインスタンスで使用するように要求します。インスタンスにオンデマンド容量の使用が許可されていない。予約容量が使用できない場合、インスタンスの作成は失敗します。

    • RESERVATION: 使用する予約。RESERVATION_AFFINITY に指定した値に基づいて、次のいずれかを指定します。

      • ANY_RESERVATION を指定した場合は、RESERVATION を削除して、値が空の文字列("")になるようにします。または、key フィールドと values フィールドを完全に削除することもできます。
      • SPECIFIC_RESERVATION を指定した場合は、RESERVATION を次のように置き換えます。

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

        • RESERVATION_OWNER_PROJECT_ID: 予約が作成されたプロジェクトのプロジェクト ID。
        • RESERVATION_NAME: 予約の名前。
  2. 省略可: コンパクト プレースメント ポリシーを使用することを選択した場合は、リクエスト本文に次のフィールドを追加します。

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

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

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

オンデマンド

リクエストを送信する前に、次のすべての手順を確認して、追加のフィールドを含めるかどうかを判断します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "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": "STANDARD",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": AUTOMATIC_RESTART
  },
  "reservationAffinity": {
    "consumeReservationType": "RESERVATION_AFFINITY"
  }
}

次の手順を行います。

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

    • PROJECT_ID: VM を作成するプロジェクトのプロジェクト ID。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • INSTANCE_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • AUTOMATIC_RESTART: インスタンスがクラッシュした場合、またはメンテナンス イベントなどのプログラムによる停止のために Compute Engine がインスタンスを停止した場合に、インスタンスが自動的に再起動するかどうか。自動再起動を有効にする場合は true(デフォルト)、無効にする場合は false を指定します。

    • RESERVATION_AFFINITY: インスタンスが使用できる予約(可能な場合)。次のいずれかを指定します。

      • ANY_RESERVATION(予約容量は省略可): デフォルトのオプションです。インスタンスは、自動的に使用される予約の容量を使用しようとします。これは、一致する予約容量が使用可能な場合にのみ発生します。それ以外の場合、インスタンスはオンデマンド容量を使用します。

      • NO_RESERVATION(オンデマンド容量が必要): インスタンスが予約容量を使用できないようにします。

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

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

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

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

Flex Start

リクエストを送信する前に、次のすべての手順を確認して、追加のフィールドを含めるかどうかを判断します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "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": "NO_RESERVATION",
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
  }
}

次の手順を行います。

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

    • PROJECT_ID: VM を作成するプロジェクトのプロジェクト ID。
    • ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • INSTANCE_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • REQUEST_VALID_FOR_DURATION: VM の作成リクエストの有効期間(秒単位)。

      VM 作成リクエストが成功する可能性を高めるため、ワークロードのゾーン要件に基づいて次のいずれかの期間を指定します。

      • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(90)から 2 時間(7200)の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
      • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(0)に指定します。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
    • MAX_RUN_DURATION: リクエストされた VM を実行する期間。値は秒数としてフォーマットする必要があります。たとえば、86,400 秒(24 時間)の場合は 86400 を指定します。値は 10 分~7 日の範囲で指定してください。

    • TERMINATION_ACTION: 実行期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するか。

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

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

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

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

スポット

リクエストを送信する前に、次のすべての手順を確認して、追加のフィールドを含めるかどうかを判断します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "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 の可用性 をご覧ください。
    • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、Compute Engine ドキュメントの GPU マシンタイプをご覧ください。
    • INSTANCE_NAME: VM の名前。
    • DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。
    • DISK_TYPE: ブートディスクのタイプ。このマシンシリーズでは、hyperdisk-balanced を使用することをおすすめします。マシンタイプでサポートされているディスクタイプの詳細については、Compute Engine ドキュメントのアクセラレータ最適化マシン ファミリーの GPU マシンをご覧ください。
    • IMAGE_PROJECT: OS イメージのプロジェクト ID。
    • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。A3 Edge マシンシリーズでは、cos-121-lts 以降の Container-Optimized OS イメージを使用し、自動更新を無効にすることを強くおすすめします。
    • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
    • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
    • REGION: サブネットワークのリージョン。
    • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

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

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

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

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

GPU ドライバをインストールする

インスタンスを作成した後、適切な GPU ドライバがすでにインストールされていない限り、インスタンスで GPU を使用することはできません。GPU ドライバを含む OS イメージを指定していない場合は、Compute Engine ドキュメントの GPU ドライバをインストールするをご覧ください。

省略可: NVIDIA マルチインスタンス GPU モードを有効にする

マルチインスタンス GPU(MIG)モードは、サポートされている NVIDIA GPU で有効にできる機能です。インスタンスを作成したら、マシンに割り当てられている単一の GPU で MIG モードを有効にできます。MIG モードを有効にすると、単一の GPU が最大 7 つの独立した GPU インスタンスに分割されます。各インスタンスは、それぞれ独自のメモリ、キャッシュ、ストリーミング マルチプロセッサを備え、同時に実行されます。これらの GPU インスタンスでさまざまなワークロードを並行して実行できます。MIG モードの使用について詳しくは、NVIDIA のドキュメントの マルチインスタンス GPU(MIG)ユーザーガイドをご覧ください。

次のステップ