컨피덴셜 VM 인스턴스와 함께 GPU를 사용하려면 지원되는 머신 유형과 인스턴스 프로비저닝 모델을 사용하여 VM 인스턴스를 만들어야 합니다. VM 인스턴스를 만든 후 연결된 GPU에서 컨피덴셜 컴퓨팅 모드를 사용 설정합니다.
NVIDIA GPU가 있는 컨피덴셜 VM 인스턴스는 다음 머신 유형에서 사용할 수 있습니다.
A3 High 머신 유형: Intel TDX가 적용된 NVIDIA H100 GPU 스팟 및 flex-start 프로비저닝 모델을 지원합니다.
G4 머신 유형 (미리보기): AMD SEV가 적용된 NVIDIA RTX PRO 6000 표준 (주문형), 스팟, flex-start 프로비저닝 모델과 예약을 지원합니다.
GPU를 사용하여 컨피덴셜 VM 인스턴스를 만들기 전에 GPU 할당량이 충분한지 확인하세요. 자세한 내용은 GPU 할당량 요구사항을 참고하세요.
GPU를 사용하여 컨피덴셜 VM 인스턴스 만들기
연결된 GPU가 있는 컨피덴셜 VM 인스턴스를 만들려면 다음 프로비저닝 모델 중 하나를 사용하세요.
표준 (주문형): 표준 (주문형) 액셀러레이터 최적화 VM 인스턴스를 만듭니다. 이 모델은 G4 (미리보기) 머신 유형에서만 사용할 수 있습니다. 자세한 단계는 표준 (주문형) 또는 스팟 모델을 참고하세요.
스팟: A3 High 또는 G4 (미리보기) 머신 유형의 가속기 최적화 스팟 VM 인스턴스를 만듭니다. 자세한 단계는 표준 (온디맨드) 또는 스팟 모델을 참고하세요.
유연한 시작: A3 High 또는 G4 (프리뷰) 머신 유형의 관리형 인스턴스 그룹 (MIG)을 만듭니다. 자세한 단계는 유연한 시작 모델을 참고하세요.
표준 (주문형) 또는 스팟 모델
gcloud
gcloud CLI를 사용하여 가속기 최적화 표준 (온디맨드) 또는 스팟 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 머신 유형: 스팟 VM 인스턴스의 경우
SPOTG4 머신 유형 (미리보기): 표준(온디맨드) VM 인스턴스의 경우
STANDARD, 스팟 VM 인스턴스의 경우SPOT지정하지 않으면 이 값은 기본적으로STANDARD입니다.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 중 하나를 선택합니다.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-imagesG4 머신 유형 (프리뷰): Ubuntu 이미지의 경우
ubuntu-os-cloud, Container-Optimized OS 이미지의 경우cos-cloud
IMAGE_FAMILY_NAME: 컨피덴셜 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
표준 (온디맨드) 또는 스팟 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: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 중 하나를 선택합니다.A3 High 머신 유형 (
a3-highgpu-1g):TDXG4 머신 유형 (
g4-standard-48):SEV
PROVISIONING_MODEL: 머신 시리즈에서 지원하는 프로비저닝 모델입니다. 다음 중 하나를 선택합니다.A3 High 머신 유형: 스팟 VM 인스턴스의 경우
SPOTG4 머신 유형 (미리보기): 표준 (온디맨드) VM 인스턴스의 경우
STANDARD, 스팟 VM 인스턴스의 경우SPOT지정하지 않으면 이 값은 기본적으로STANDARD입니다.
IMAGE_PROJECT: 지원되는 운영체제 이미지가 포함된 프로젝트입니다. 다음 중 하나를 선택합니다.A3 High 머신 유형: Ubuntu 이미지의 경우
ubuntu-os-cloud, Container-Optimized OS 이미지의 경우confidential-vm-imagesG4 머신 유형 (프리뷰): Ubuntu 이미지의 경우
ubuntu-os-cloud, Container-Optimized OS 이미지의 경우cos-cloud
IMAGE_FAMILY: 컨피덴셜 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(유연한 시작) 모델
유연한 시작 모델을 사용하려면 먼저 인스턴스 템플릿을 만든 다음 해당 템플릿을 사용하여 관리형 인스턴스 그룹 (MIG)을 만듭니다. 그런 다음 크기 조절 요청을 사용하여 MIG에 GPU VM 인스턴스를 추가할 수 있습니다.
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: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 중 하나를 선택합니다.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-imagesG4 머신 유형 (프리뷰): Ubuntu 이미지의 경우
ubuntu-os-cloud, Container-Optimized OS 이미지의 경우cos-cloud
IMAGE_FAMILY_NAME: 사용할 컨피덴셜 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단위를 조합하여 일, 시, 분, 초 순서로 값 형식을 지정해야 합니다. 예:6d8h44mPROJECT_ID: VM을 만들 프로젝트의 ID입니다.
REST
컨피덴셜 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: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 중 하나를 선택합니다.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-imagesG4 머신 유형 (프리뷰): Ubuntu 이미지의 경우
ubuntu-os-cloud, Container-Optimized OS 이미지의 경우cos-cloud
IMAGE_FAMILY_NAME: 사용할 컨피덴셜 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입니다.
컨피덴셜 VM 인스턴스에 예약 사용
예약을 사용하여 G4 머신 유형 (프리뷰)으로만 컨피덴셜 VM 인스턴스의 용량을 확보할 수 있습니다.
컨피덴셜 VM 인스턴스에 예약을 사용하려면 다음 단계를 따르세요.
지원되는 영역에 표준 예약 만들기 예약 생성 시
--require-specific-reservation플래그를 사용하여 인스턴스가 이 예약을 사용하는 방식을 제어할 수 있습니다.예약을 사용할 컨피덴셜 VM 인스턴스를 만듭니다. VM 인스턴스를 만들 때
--confidential-compute-type=SEV플래그를 포함하여 컨피덴셜 VM 인스턴스로 만듭니다. 이 인스턴스가 예약을 사용하는 방식은 예약의 어피니티 설정에 따라 다릅니다.
다음 예에서는 컨피덴셜 VM 인스턴스와 함께 예약을 사용하는 방법을 보여줍니다. 예약을 사용하는 방법은 예약이 생성된 방식에 따라 다릅니다.
자동 사용:
--require-specific-reservation플래그 없이 예약이 생성된 경우 머신 유형이나 영역과 같은 속성이 일치하는 G4 컨피덴셜 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에서 컨피덴셜 컴퓨팅 모드 사용 설정
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 커널 암호화 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 드라이버 간에 보안 보안 프로토콜 및 데이터 모델 (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-reloadLKCA 및 영구 모드 구성을 적용하려면 VM 인스턴스를 재부팅합니다.
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 머신 유형의 컨피덴셜 VM 인스턴스에 대한 추가 요금이 무료로 제공됩니다. 이러한 요금에는 컨피덴셜 컴퓨팅 할증료와 NVIDIA 라이선스 비용이 포함됩니다. G4 머신 유형, GPU, 스토리지와 같은 기본 Compute Engine 리소스에 대한 표준 요금은 계속 적용됩니다. 이러한 추가 컨피덴셜 컴퓨팅 요금은 프리뷰 기간이 종료되고 정식 버전 (GA)이 출시된 후에 적용됩니다. 가격에 관한 자세한 내용은 컨피덴셜 VM 가격 책정을 참고하세요.
다음 단계
GPU에서 비밀 모드가 사용 설정되어 있는지 확인하는 방법을 알아봅니다.
GPU 할당량 요구사항 자세히 알아보기
할당량 소비를 알아보려면 GPU VM 및 선점형 배정 할당량을 참고하세요.