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

このページでは、Colab Enterprise でランタイム テンプレートを作成する方法について説明します。

ノートブックでコードを実行するには、ランタイムというコンピューティング リソースを使用します。デフォルトのランタイム、またはランタイム テンプレートから作成されたランタイムを使用できます。ランタイム テンプレートを作成することで、ランタイムのパフォーマンス、コスト、その他の特性をニーズに合わせて最適化するようにテンプレートを構成できます。

ランタイムとランタイム テンプレートで詳細をご確認ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI, Dataform, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. 必要なロール

    Colab Enterprise でランタイム テンプレートを作成するために必要な権限を取得するには、プロジェクトに対する Colab Enterprise 管理者(roles/aiplatform.colabEnterpriseAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

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

    ランタイム テンプレートを作成するには、 Google Cloud コンソール、Google Cloud CLI、REST API、または Terraform を使用します。

    コンソール

    ランタイム テンプレートを作成するには:

    1. Google Cloud コンソールで、Colab Enterprise の [ランタイム テンプレート] ページに移動します。

      [ランタイム テンプレート] に移動

    2. [ 新しいテンプレート] をクリックします。

      [ランタイム テンプレートの新規作成] ダイアログが表示されます。

    ランタイムの基本情報

    1. [ランタイムの基本情報] セクションで表示名を入力します。

    2. [リージョン] メニューで、ランタイム テンプレートを配置するリージョンを選択します。

    3. (省略可)ランタイム テンプレートの説明を追加します。

    4. (省略可)ラベルを追加するには、[ ラベルを追加] をクリックして、キーのペアを入力します。さらにラベルを追加するには、この手順を繰り返します。

    5. [続行] をクリックします。

    コンピューティングを構成する

    1. [コンピューティングの構成] セクションの [マシンタイプ] メニューで、マシンタイプを選択します。マシンタイプについては、マシン ファミリーのリソースと比較ガイドをご覧ください。

      GPU を搭載したマシンタイプを選択した場合は、アクセラレータ タイプアクセラレータ数を選択します。必要な GPU 数を選択できない場合は、割り当てを増やす必要がある可能性があります。割り当ての調整をリクエストするをご覧ください。

    2. [データディスクの種類] メニューで、ディスクタイプを選択します。

    3. [データディスク サイズ] フィールドに、サイズを GB 単位で入力します。

    4. [アイドル状態でのシャットダウン] セクションで次の設定を行います。

      • アイドル状態のシャットダウンをオフにするには、[アイドル状態でのシャットダウンを有効にする] をオフにします。

      • 非アクティブ時間を変更するには、[シャットダウンまでの非アクティブ時間(分)] で、非アクティブにする時間を変更します。 Google Cloud コンソールでは、この設定を 10~1440 の任意の整数値に設定できます。

    5. [続行] をクリックします。

    環境

    1. [環境] セクションで、環境を選択します。デフォルトは [最新] です(現在は Python 3.12)。

    2. 省略可: [起動後のスクリプト] フィールドに、起動後のスクリプトの URI を入力します。起動後スクリプトの使用の詳細については、起動後スクリプトを使用するをご覧ください。

    3. 省略可: [起動後スクリプトの URL] で、起動後スクリプトの動作を選択します。デフォルトの動作は [1 回実行] です。詳細については、起動後のスクリプトの動作をご覧ください。

    4. (省略可)環境変数を追加するには、[ 環境変数を追加] をクリックして、キーのペアを入力します。さらに環境変数を追加するには、この手順を繰り返します。

    5. [続行] をクリックします。

    ネットワークとセキュリティ

    1. [ネットワーキングとセキュリティ] セクションの [ネットワーク] メニューで、ネットワークを選択します。ネットワークを選択しない場合は、デフォルト ネットワークが選択されます。

    2. [サブネットワーク] メニューで、サブネットワークを選択します。

    3. 公共のインターネット アクセスをオフにするには、[公共のインターネット アクセスを有効にする] をオフにします。

    4. エンドユーザー認証情報へのアクセスを無効にするには、[エンドユーザー認証情報を有効にする] をオフにします。

    ランタイム テンプレートの作成を完了する

    [作成] をクリックして、ランタイム テンプレートの作成を完了します。

    ランタイム テンプレートが [ランタイム テンプレート] タブのリストに表示されます。

    gcloud

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • DISPLAY_NAME: ランタイム テンプレートの表示名。
    • PROJECT_ID: プロジェクト ID。
    • REGION: ランタイム テンプレートを配置するリージョン。
    • MACHINE_TYPE: ランタイムに使用するマシンタイプ
    • ACCELERATOR_TYPE: ランタイムに使用するハードウェア アクセラレータのタイプ。
    • ACCELERATOR_COUNT: ランタイムに使用するアクセラレータの数。

    次のコマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud colab runtime-templates create --display-name="DISPLAY_NAME" \
        --project=PROJECT_ID \
        --region=REGION \
        --machine-type=MACHINE_TYPE \
        --accelerator-type=ACCELERATOR_TYPE \
        --accelerator-count=ACCELERATOR_COUNT

    Windows(PowerShell)

    gcloud colab runtime-templates create --display-name="DISPLAY_NAME" `
        --project=PROJECT_ID `
        --region=REGION `
        --machine-type=MACHINE_TYPE `
        --accelerator-type=ACCELERATOR_TYPE `
        --accelerator-count=ACCELERATOR_COUNT

    Windows(cmd.exe)

    gcloud colab runtime-templates create --display-name="DISPLAY_NAME" ^
        --project=PROJECT_ID ^
        --region=REGION ^
        --machine-type=MACHINE_TYPE ^
        --accelerator-type=ACCELERATOR_TYPE ^
        --accelerator-count=ACCELERATOR_COUNT

    コマンドラインからランタイム テンプレートを作成するコマンドの詳細については、gcloud CLI のドキュメントをご覧ください。

    REST

    リクエストのデータを使用する前に、次のように置き換えます。

    • REGION: ランタイム テンプレートを配置するリージョン。
    • PROJECT_ID: 実際のプロジェクト ID。
    • DISPLAY_NAME: ランタイム テンプレートの表示名。
    • MACHINE_TYPE: ランタイムに使用するマシンタイプ
    • ACCELERATOR_TYPE: ランタイムに使用するハードウェア アクセラレータのタイプ。
    • ACCELERATOR_COUNT: ランタイムに使用するアクセラレータの数。

    HTTP メソッドと URL:

    POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates

    リクエストの本文(JSON):

    {
      "displayName": "DISPLAY_NAME",
      "machineSpec": {
        {
          "machineType": MACHINE_TYPE
          "acceleratorType": ACCELERATOR_TYPE,
          "acceleratorCount": ACCELERATOR_COUNT,
        }
      },
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates" | Select-Object -Expand Content
    成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

    詳しくは、notebookRuntimeTemplates.create REST API のドキュメントをご覧ください。

    Terraform

    Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。詳細については、Terraform プロバイダのリファレンス ドキュメントをご覧ください。

    次のサンプルでは、google_colab_runtime_template Terraform リソースを使用して Colab Enterprise ランタイム テンプレートを作成します。

    resource "google_compute_network" "my_network" {
      name = "{{index $.Vars "network_name"}}"
      auto_create_subnetworks = false
    }
    
    resource "google_compute_subnetwork" "my_subnetwork" {
      name   = "{{index $.Vars "network_name"}}"
      network = google_compute_network.my_network.id
      region = "us-central1"
      ip_cidr_range = "10.0.1.0/24"
    }
    
    resource "google_colab_runtime_template" "{{$.PrimaryResourceId}}" {
      name        = "{{index $.Vars "runtime_template_name"}}"
      display_name = "Runtime template full"
      location    = "us-central1"
      description = "Full runtime template"
      machine_spec {
        machine_type     = "n1-standard-2"
        accelerator_type = "NVIDIA_TESLA_T4"
        accelerator_count = "1"
      }
    
      data_persistent_disk_spec {
        disk_type    = "pd-standard"
        disk_size_gb = 200
      }
    
      network_spec {
        enable_internet_access = true
        network = google_compute_network.my_network.id
        subnetwork = google_compute_subnetwork.my_subnetwork.id
      }
    
      labels = {
        k = "val"
      }
    
      idle_shutdown_config {
        idle_timeout = "3600s"
      }
    
      euc_config {
        euc_disabled = false
      }
    
      shielded_vm_config {
        enable_secure_boot = false
      }
    
      network_tags = ["abc", "def"]
    
      encryption_spec {
        kms_key_name = "{{index $.Vars "key_name"}}"
      }
    
      software_config {
        env {
          name    = "TEST"
          value   = 1
        }
    
        post_startup_script_config {
          post_startup_script = "echo 'hello world'"
          post_startup_script_url = "gs://colab-enterprise-pss-secure/secure_pss.sh"
          post_startup_script_behavior = "RUN_ONCE"
        }
      }
    }
    

    ランタイム テンプレートへのアクセス権の付与

    プリンシパルがランタイム テンプレートを使用するには、ランタイム テンプレートを作成した後にそのテンプレートへのアクセス権を付与する必要があります。プリンシパルがランタイム テンプレートからランタイムを作成するには、次の権限が必要です。

    • ランタイム テンプレートへのアクセス権。
    • ランタイムの作成に必要な権限。

    ランタイム テンプレートへのアクセスを管理するをご覧ください。

    共有 VPC ネットワークで Colab Enterprise を使用する

    共有 VPC ネットワークのサービス プロジェクトでランタイム テンプレートまたはランタイムを作成する場合は、ホスト プロジェクトに対する特定の権限を Vertex AI サービス エージェント(service-SERVICE_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com)に付与する必要があります。これらの権限は、次の操作を行うために使用されます。

    • ランタイム テンプレートを作成するときに、ネットワークとサブネットワークの存在とアクセシビリティを検証します。
    • ランタイムの作成時に、共有 VPC ネットワーク内に基盤となる Compute Engine VM インスタンスをプロビジョニングします。

    Vertex AI サービス エージェントが共有 VPC ネットワーク内でランタイム テンプレートとランタイムの使用を有効にするために必要な権限を持っていることを確認するには、ホスト プロジェクトに対する Compute ネットワーク ユーザー roles/compute.networkUser)IAM ロールの付与を管理者に依頼してください。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    管理者は、カスタムロールや他の事前定義ロールを使用して、Vertex AI サービス エージェントに必要な権限を付与することもできます。

    共有 VPC ネットワークでノートブックの実行をスケジュールする

    共有 VPC ネットワークのサービス プロジェクトでランタイム テンプレートまたはランタイムを使用してノートブック スケジューラを使用する場合は、ホスト プロジェクトで Colab Enterprise サービス エージェント(service-SERVICE_PROJECT_NUMBER@gcp-sa-vertex-nb.iam.gserviceaccount.com)に特定の権限を付与する必要があります。これらの権限は、基盤となる Compute Engine VM の作成に使用されます。

    Colab Enterprise サービス エージェントが共有 VPC ネットワーク内でスケジュール設定されたノートブックを使用するために必要な権限を持つようにするには、ホスト プロジェクトに対する Compute ネットワーク ユーザー roles/compute.networkUser)IAM ロールを Colab Enterprise サービス エージェントに付与するよう管理者に依頼してください。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    管理者は、カスタムロールや他の事前定義ロールを使用して、Colab Enterprise サービス エージェントに必要な権限を付与することもできます。

    ランタイム テンプレートを削除する

    ランタイム テンプレートを削除するには:

    1. Google Cloud コンソールで、Colab Enterprise の [ランタイム テンプレート] ページに移動します。

      [ランタイム テンプレート] に移動

    2. [リージョン] メニューで、ランタイム テンプレートを含むリージョンを選択します。

    3. 削除するランタイム テンプレートを選択します。

    4. [削除] をクリックします。

    5. [確認] をクリックします。

    トラブルシューティング

    このセクションでは、Colab Enterprise でのランタイム テンプレートの作成に関する問題を解決する方法について説明します。

    十分な数の GPU を選択できない

    ランタイム テンプレートの作成時に、必要な GPU の数を選択できません。これは、割り当てが不足していることが原因である可能性があります。

    Colab Enterprise では、GPU に Compute Engine の割り当てを使用します。詳細については、Compute Engine の割り当てと上限の概要をご覧ください。

    この問題を解決するには、割り当ての調整をリクエストしてください。

    次のステップ