インスタンス テンプレートを使用して GPU インスタンスのグループを作成する


インスタンス テンプレートを使用して、各インスタンスに GPU が追加されたマネージド インスタンス グループを作成できます。マネージド インスタンス グループは、テンプレートを使用して同一インスタンスを複数作成します。グループ内のインスタンスの数は、ワークロードに合わせてスケーリングできます。

作成されたインスタンスには CUDA ツールキットと NVIDIA ドライバがインストールされている必要があるため、GPU インスタンスのインスタンス テンプレートは次の手順で作成します。

  1. GPU が接続されているインスタンスを作成します。
  2. GPU ドライバをインスタンスにインストールします。
  3. GPU とドライバがインストールされている VM インスタンスに接続されたディスクからイメージを作成します。
  4. このイメージを使用してインスタンス テンプレートを作成します。
  5. このテンプレートを使用してインスタンス グループを作成します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

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

    コンソール

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

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    Terraform

    このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。

    1. Google Cloud CLI をインストールします。
    2. gcloud CLI を初期化するには:

      gcloud init
    3. Google アカウントのローカル認証情報を作成します。

      gcloud auth application-default login

    詳細については、 ローカル開発環境の認証の設定 をご覧ください。

インスタンス テンプレートを作成する

グローバルまたはリージョンのインスタンス テンプレートを作成できます。リージョン インスタンス テンプレートを作成する場合は、少なくとも 1 つのゾーンが必要な GPU モデルをサポートするリージョンを選択してください。

インスタンス テンプレートの作成手順については、インスタンス テンプレートの作成をご覧ください。

コンソール

コンソール を使用してインスタンス テンプレートを作成する場合は、必ず次のカスタマイズを行います。

  • マシンタイプを指定します。
  • GPU とドライバが接続されているカスタム イメージのイメージ名とファミリーを指定します。

カスタム イメージの使用の詳細については、インスタンス テンプレートでのカスタム イメージまたはパブリック イメージの使用をご覧ください。

gcloud

gcloud compute instance-templates create を使用してインスタンス テンプレートを作成するには、--accelerators フラグと --maintenance-policy TERMINATE フラグを含めます。リージョン インスタンス テンプレートを作成する場合は、--instance-template-region フラグを使用してテンプレートのリージョンを指定する必要があります。

次の例では、2 つの vCPU、イメージに基づく 250 GB のブートディスク(ドライバがインストール済み)、NVIDIA T4 GPU を含むグローバル インスタンス テンプレートを作成します。my-imagemy-project は、GPU とドライバが接続されているイメージのイメージ名とプロジェクト名で置き換えます。

gcloud compute instance-templates create gpu-template \
    --machine-type n1-standard-2 \
    --boot-disk-size 250GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family my-image \
    --image-project my-project \
    --maintenance-policy TERMINATE \
    --restart-on-failure

Terraform

次のサンプルでは、2 つの vCPU、イメージに基づく 250 GB のブートディスク(ドライバがインストール済み)、NVIDIA T4 GPU を含むグローバル インスタンス テンプレートを作成します。サンプルで使用されているリソースの詳細については、google_compute_instance_template リソースをご覧ください。

リージョン インスタンス テンプレートを作成するには、google_compute_region_instance_template リソースを使用します。

resource "google_compute_instance_template" "default" {
  name         = "gpu-template"
  machine_type = "n1-standard-2"

  disk {
    source_image = "debian-cloud/debian-11"
    disk_size_gb = 250
  }

  network_interface {
    network = "default"
  }
  guest_accelerator {
    type  = "nvidia-tesla-t4"
    count = 1
  }
  scheduling {
    automatic_restart   = true
    on_host_maintenance = "TERMINATE"
  }

}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

インスタンス グループの作成

テンプレートを作成したら、そのテンプレートを使用してインスタンス グループを作成します。グループにインスタンスを追加するたびに、インスタンス テンプレートの設定を使用してそのインスタンスが開始されます。

リージョン マネージド インスタンス グループを作成する場合は必ず、必要な GPU モデルを明示的にサポートするゾーンを選択してください。GPU モデルと使用可能なゾーンの一覧については、Compute Engine の GPU をご覧ください。次の例では、nvidia-tesla-t4 モデルをサポートする 2 つのゾーンにまたがるリージョン マネージド インスタンス グループを作成しています。

gcloud compute instance-groups managed create example-rmig \
    --template gpu-template --base-instance-name example-instances \
    --size 30 --zones us-east1-c,us-east1-d

次のステップ