Confidential VM インスタンスで GPU を使用するには、サポートされているマシンタイプとインスタンスのプロビジョニング モデルを使用して VM インスタンスを作成する必要があります。VM インスタンスを作成したら、接続された GPU で Confidential Computing モードを有効にします。
NVIDIA GPU を搭載した Confidential VM インスタンスは、次のマシンタイプで使用できます。
A3 High マシンタイプ: Intel TDX を搭載した NVIDIA H100 GPU。スポット プロビジョニング モデルと Flex Start プロビジョニング モデルをサポートします。
G4 マシンタイプ(プレビュー): AMD SEV を搭載した NVIDIA RTX PRO 6000。標準(オンデマンド)、スポット、Flex Start のプロビジョニング モデルと予約をサポートします。
GPU を使用して Confidential VM インスタンスを作成する前に、十分な GPU 割り当てがあることを確認してください。詳細については、GPU 割り当ての要件をご覧ください。
GPU を使用して Confidential VM インスタンスを作成する
GPU が接続された Confidential VM インスタンスを作成するには、次のいずれかのプロビジョニング モデルを使用します。
標準(オンデマンド): 標準(オンデマンド)アクセラレータ最適化 VM インスタンスを作成します。このモデルは、G4(プレビュー)マシンタイプでのみ使用できます。詳細な手順については、標準(オンデマンド)モデルまたは Spot モデルをご覧ください。
Spot: A3 High または G4(プレビュー)マシンタイプ用のアクセラレータ最適化 Spot VM インスタンスを作成します。詳細な手順については、標準(オンデマンド)モデルまたは Spot モデルをご覧ください。
Flex Start: A3 High または G4(プレビュー)マシンタイプ用のマネージド インスタンス グループ(MIG)を作成します。詳細な手順については、Flex Start モデルをご覧ください。
標準(オンデマンド)モデルまたはスポットモデル
gcloud
gcloud CLI を使用してアクセラレータ最適化標準(オンデマンド)または Spot VM インスタンスを作成するには、--provisioning-model フラグを指定して instances create サブコマンドを使用します。
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=PROVISIONING_MODEL \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
セキュアブートを有効にするには、VM インスタンスの起動に --shielded-secure-boot フラグを使用します。
次の値を指定します。
INSTANCE_NAME: 新しい VM インスタンスの名前。PROVISIONING_MODEL: マシンタイプでサポートされているプロビジョニング モデル。次のいずれかを選択します。A3 High マシンタイプ: Spot VM インスタンスの場合は
SPOT。G4 マシンタイプ(プレビュー): 標準(オンデマンド)VM インスタンスの場合は
STANDARD、Spot VM インスタンスの場合はSPOT。指定しない場合、この値はデフォルトでSTANDARDになります。
CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかを選択します。A3 High マシンタイプ(
a3-highgpu-1g):TDXG4 マシンタイプ(
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM のマシンタイプ。次のいずれかの方法をお選びください。a3-highgpu-1gg4-standard-48(プレビュー)
ZONE_NAME: VM を作成するサポートされているゾーン。IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ(プレビュー): Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ(プレビュー):
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
REST
標準(オンデマンド)または Spot VM インスタンスを作成するには、適切な本文コンテンツを含む次の POST リクエストを送信します。
次の HTTP メソッドと URL を使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
次のリクエスト JSON 本文を使用します。
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"automaticRestart": true,
"provisioningModel": "PROVISIONING_MODEL"
},
"disks": [
{
"boot": true,
"autoDelete": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
"diskSizeGb": "30"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
次の値を指定します。
PROJECT_ID: 省略可。VM を作成するプロジェクトの ID。ZONE: VM を作成するサポートされているゾーン。INSTANCE_NAME: 新しい VM インスタンスの名前。MACHINE_TYPE_NAME: VM のマシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48(プレビュー)
CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかを選択します。A3 High マシンタイプ(
a3-highgpu-1g):TDXG4 マシンタイプ(
g4-standard-48):SEV
PROVISIONING_MODEL: マシンシリーズでサポートされているプロビジョニング モデル。次のいずれかを選択します。A3 High マシンタイプ: Spot VM インスタンスの場合は
SPOT。G4 マシンタイプ(プレビュー): 標準(オンデマンド)VM インスタンスの場合は
STANDARD、Spot VM インスタンスの場合はSPOT。指定しない場合、この値はデフォルトでSTANDARDになります。
IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ(プレビュー): Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ(プレビュー):
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
Flex Start モデル
Flex Start モデルを使用するには、まずインスタンス テンプレートを作成し、そのテンプレートを使用してマネージド インスタンス グループ(MIG)を作成します。その後、サイズ変更リクエストを使用して、GPU VM インスタンスを MIG に追加できます。
Flex Start プロビジョニング モデルで MIG サイズ変更リクエストを使用すると、GPU VM インスタンスの取得可能性が向上します。詳細については、MIG のサイズ変更リクエストについてをご覧ください。
始める前に
- MIG の作成については、MIG の前提条件をご覧ください。
- MIG でサイズ変更リクエストを作成する場合は、サイズ変更リクエストの制限事項をご覧ください。
GPU VM インスタンスを使用して MIG を作成する
インスタンス テンプレートを作成し、そのテンプレートを使用して MIG を作成するには、次の手順を行います。
インスタンス テンプレートを作成します。
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \ --machine-type=MACHINE_TYPE_NAME \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --reservation-affinity=none \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID次の値を指定します。
INSTANCE_TEMPLATE_NAME: 新しい VM インスタンス テンプレートの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかを選択します。A3 High マシンタイプ(
a3-highgpu-1g):TDXG4 マシンタイプ(
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM のマシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48(プレビュー)
IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ(プレビュー): Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: 使用する Confidential VM 対応のオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ(プレビュー):
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
RUN_DURATION: リクエストされた VM インスタンスを実行する期間。値は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。例:6d8h44m。PROJECT_ID: VM を作成するプロジェクトの ID。
REST
Confidential VM インスタンス テンプレートを作成するには、適切な本文コンテンツを含む次の POST リクエストを送信します。
次の HTTP メソッドと URL を使用します。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates次のリクエスト JSON 本文を使用します。
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY" }, "machineType": "MACHINE_TYPE_NAME", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": "RUN_DURATION_IN_SECONDS" }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false } }セキュアブートを有効にするには、VM インスタンスの起動に次のオブジェクトを含めます。
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }次の値を指定します。
PROJECT_ID: テンプレートを作成するプロジェクトの ID。REGION: テンプレートを作成するリージョン。INSTANCE_TEMPLATE_NAME: 新しい VM インスタンス テンプレートの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジーのタイプ。次のいずれかを選択します。A3 High マシンタイプ(
a3-highgpu-1g):TDXG4 マシンタイプ(
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM のマシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48(プレビュー)
RUN_DURATION_IN_SECONDS: リクエストされた VM インスタンスを実行する期間(秒単位)。値は600~604800秒の範囲で指定してください。IMAGE_PROJECT: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ(プレビュー): Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: 使用する Confidential VM 対応のオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ(プレビュー):
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
MIG とサイズ変更リクエストを作成して、GPU VM インスタンスを一度にすべて追加します。
MIG に存在するインスタンスを一覧表示します。
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID次の値を指定します。
INSTANCE_GROUP_NAME: MIG の名前。ZONE_NAME: VM インスタンスのリストを取得するサポートされているゾーン。PROJECT_ID: 省略可。VM インスタンスのリストを取得するプロジェクトの ID。
REST
すべてのテンプレートを一覧表示するには、次の GET リクエストを送信します。
次の HTTP メソッドと URL を使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesインスタンスのリストを特定のゾーンに絞り込むには、次の GET リクエストを送信します。
次の HTTP メソッドと URL を使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates次の値を指定します。
ZONE_NAME: VM インスタンスのリストを取得するサポートされているゾーン。PROJECT_ID: VM インスタンスのリストを取得するプロジェクトの ID。
Confidential VM インスタンスで予約を使用する
予約を使用すると、G4 マシンタイプ(プレビュー)でのみ Confidential VM インスタンスの容量を確保できます。
Confidential VM インスタンスの予約を使用するには:
サポートされているゾーンに標準予約を作成します。予約の作成時に
--require-specific-reservationフラグを使用すると、インスタンスがこの予約を使用する方法を制御できます。予約を使用する Confidential VM インスタンスを作成します。VM インスタンスを作成するときに、
--confidential-compute-type=SEVフラグを指定して Confidential VM インスタンスにします。このインスタンスが予約を使用する方法は、予約のアフィニティ設定によって異なります。
次の例は、Confidential VM インスタンスで予約を使用する方法を示しています。予約の使用方法は、予約の作成方法によって異なります。
自動消費:
--require-specific-reservationフラグを指定せずに予約を作成した場合、一致するプロパティ(マシンタイプやゾーンなど)を持つ G4 Confidential VM インスタンスを作成して、予約を自動的に使用できます。特定の使用:
--require-specific-reservationフラグを指定して予約を作成した場合は、インスタンスの作成時に--reservation-affinity=specificフラグと--reservation=RESERVATION_NAMEフラグを使用して予約をターゲットにする必要があります。gcloud compute instances create INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE_NAME \ --machine-type=g4-standard-48 \ --confidential-compute-type=SEV \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2404-lts-amd64 \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME次の値を指定します。
INSTANCE_NAME: 新しい VM インスタンスの名前。PROJECT_ID: 省略可。VM を作成するプロジェクトの ID。ZONE_NAME: VM を作成するサポートされているゾーン。RESERVATION_NAME: 予約の名前。
VM インスタンスが予約を消費する方法とアフィニティの仕組みについては、予約を消費するをご覧ください。
GPU で Confidential Computing モードを有効にする
gcloud compute ssh コマンドを使用して、MIG の VM インスタンスに接続します。
gcloud compute sshパッケージ リストを更新し、必要なツールとライブラリをインストールします。
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12VM インスタンスに適切な GPU ドライバをインストールします。セキュアブートが有効になっている VM インスタンスについては、GPU ドライバをインストールする(セキュアブート VM)をご覧ください。NVIDIA オープン カーネル モジュール ドライバのバージョン 580 以降を使用することをおすすめします。
GPU と GPU ドライバ間の安全な通信を構成するには、Linux Kernel Crypto API(LKCA)を有効にします。
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -u永続モードを有効にして、GPU と GPU ドライバ間の安全な Security Protocol and Data Model(SPDM)接続を確立します。
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reloadVM インスタンスを再起動して、LKCA と永続モードの構成を適用します。
sudo rebootgcloud compute ssh コマンドを使用して、MIG の VM インスタンスに接続します。
gcloud compute ssh(省略可)必要なドライバ バージョンをサポートする CUDA サンプルをインストールします。
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz tar xzvf cuda-samples.tar.gz
料金
プレビュー期間中は、G4 マシンタイプの Confidential VM インスタンスの追加料金は無料です。これらの料金には、Confidential Computing の追加料金と NVIDIA ライセンス料金が含まれます。基盤となる Compute Engine リソース(G4 マシンタイプ、GPU、ストレージなど)の標準料金は引き続き適用されます。これらの Confidential Computing の追加料金は、プレビュー期間が終了し、一般提供(GA)になった後に適用されます。料金の詳細については、Confidential VMs の料金をご覧ください。
次のステップ
GPU で情報保護モードが有効になっていることを確認する方法を確認する。
GPU 割り当ての要件について学習する。
割り当ての使用量については、GPU VM とプリエンプティブルの数量に基づく割り当てをご覧ください。