컨피덴셜 VM 인스턴스 만들기

새 Compute Engine 가상 머신을 만드는 과정에서 컨피덴셜 VM 인스턴스를 만들 수 있습니다.

시작하기 전에

컨피덴셜 VM 인스턴스를 만들기 전에 다음과 같이 환경을 설정해야 합니다.

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Enable the API

  8. (선택사항) 이 가이드의 gcloud CLI 예시를 사용하려면 다음 안내를 따르세요.
  9. (선택사항) 이 가이드의 API 예시를 사용하려면 요청에 대한 인증을 설정합니다.  OAuth 2.0 자세히 알아보기

인스턴스 만들기

콘솔

Google Cloud 콘솔을 사용하여 AMD SEV 컨피덴셜 VM을 만들려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.

  3. 컨피덴셜 VM 서비스 섹션에서 사용 설정을 클릭합니다.

  4. 컨피덴셜 컴퓨팅 사용 설정 대화상자에서 서비스를 사용 설정할 때 업데이트되는 설정 목록을 검토합니다. 호환되지 않는 값으로 설정된 경우 다음 필드가 포함될 수 있습니다.

  5. 사용 설정을 클릭합니다.

  6. 머신 구성 섹션에서 고급 구성을 펼칩니다.

  7. CPU 플랫폼에서 AMD Milan 이상을 선택합니다.

  8. 설정이 만족스러운지 확인한 후 만들기를 클릭합니다.

만들기를 클릭하면 VM 인스턴스 페이지가 열립니다. 이 페이지에서 새 인스턴스의 상태와 세부정보를 볼 수 있습니다. 컨피덴셜 VM 인스턴스의 상태 열에 녹색 체크표시 사용 가능 아이콘이 표시되면 사용할 수 있습니다.

gcloud

gcloud CLI를 사용하여 컨피덴셜 VM 인스턴스를 만들려면 --confidential-compute-type 플래그와 함께 instances create 하위 명령어를 사용합니다.

gcloud compute instances create INSTANCE_NAME \
    --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
    --machine-type=MACHINE_TYPE_NAME \
    --min-cpu-platform="CPU_PLATFORM" \
    --maintenance-policy="MAINTENANCE_POLICY" \
    --zone=ZONE_NAME \
    --image-family=IMAGE_FAMILY_NAME \
    --image-project=IMAGE_PROJECT \
    --project=PROJECT_ID

다음 값을 제공합니다.

  • INSTANCE_NAME: 새 VM 인스턴스의 이름입니다.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 값 중 하나를 선택합니다.

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: VM 머신 유형입니다(예: n2d-standard-2). 컨피덴셜 VM 인스턴스에 유효한 머신 유형은 선택한 컨피덴셜 컴퓨팅 기술에 따라 결정됩니다. 머신 유형, CPU, 영역을 참고하세요.

  • CPU_PLATFORM: 다음 값 중 하나를 선택합니다.

    • AMD SEV의 경우 AMD Milan (C2D 또는 N2D 머신 유형) 또는 AMD Genoa (C3D 머신 유형)입니다.

    • AMD SEV-SNP의 경우 AMD Milan (N2D 머신 유형)

    • Intel TDX의 경우: 이 플래그를 삭제합니다.

  • MAINTENANCE_POLICY: SEV를 사용하는 N2D 머신 유형의 경우 실시간 이전을 지원하도록 MIGRATE로 설정합니다. 다른 모든 머신 유형의 경우 라이브 마이그레이션을 지원하지 않으므로 이 값을 TERMINATE로 설정합니다.

  • ZONE_NAME: 인스턴스를 만들려는 컨피덴셜 VM에서 지원되는 영역입니다.

  • IMAGE_FAMILY_NAME: 컨피덴셜 VM 지원 운영체제 이미지의 계열입니다. --image를 추가로 지정하지 않으면 최신 이미지 버전이 선택됩니다.

  • IMAGE_PROJECT: 지원되는 운영체제 이미지가 포함된 프로젝트입니다.

  • PROJECT_ID: 선택사항. VM을 만들 프로젝트의 ID입니다.

예시

다음 명령어를 실행하여 AMD SEV-SNP를 사용하여 us-central1-a 영역에 my-instance라는 n2d-standard-2 인스턴스를 만듭니다.

gcloud compute instances create my-instance \
    --machine-type=n2d-standard-2 \
    --min-cpu-platform="AMD Milan" \
    --zone=us-central1-a \
    --confidential-compute-type=SEV_SNP \
    --maintenance-policy=TERMINATE \
    --image-family=ubuntu-2404-lts-amd64 \
    --image-project=ubuntu-os-cloud

응답

생성 요청에 대한 응답은 다음 예와 유사합니다.

Created [https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance].
NAME: my-instance
ZONE: us-central1-a
MACHINE_TYPE: n2d-standard-2
PREEMPTIBLE:
INTERNAL_IP: 0.0.0.0
EXTERNAL_IP: 0.0.0.0
STATUS: RUNNING

REST

컨피덴셜 VM 인스턴스를 만들려면 적절한 본문 콘텐츠가 포함된 POST 요청을 전송해야 합니다.

HTTP 메서드 및 URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances

JSON 요청 본문:

{
  "name": "INSTANCE_NAME",
  "confidentialInstanceConfig": {
    "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
  },
  "machineType": "zones/ZONE_NAME/machineTypes/MACHINE_TYPE_NAME",
  "minCpuPlatform": "CPU_PLATFORM",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
      }
    }
  ],
  "networkInterfaces": [
    {
      "nicType": "gVNIC"
    }
  ],
  "scheduling": {
    "automaticRestart": true,
    "nodeAffinities": [],
    "preemptible": false,
    "onHostMaintenance": MAINTENANCE_POLICY
  }
}

다음 값을 제공합니다.

  • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.

  • ZONE_NAME: 인스턴스를 만들려는 컨피덴셜 VM에서 지원되는 영역입니다.

  • INSTANCE_NAME: 새 VM 인스턴스의 이름입니다.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: 사용할 컨피덴셜 컴퓨팅 기술의 유형입니다. 다음 값 중 하나를 선택합니다.

    • SEV

    • SEV_SNP

    • TDX

  • MACHINE_TYPE_NAME: VM 머신 유형입니다(예: n2d-standard-2). 컨피덴셜 VM 인스턴스에 유효한 머신 유형은 선택한 컨피덴셜 컴퓨팅 기술에 따라 결정됩니다. 머신 유형, CPU, 영역을 참고하세요.

  • CPU_PLATFORM: 다음 값 중 하나를 선택합니다.

    • AMD SEV의 경우 AMD Milan (C2D 또는 N2D 머신 유형) 또는 AMD Genoa (C3D 머신 유형)입니다.

    • AMD SEV-SNP의 경우 AMD Milan (N2D 머신 유형)

    • Intel TDX의 경우: 이 키-값 쌍을 삭제합니다.

  • IMAGE_PROJECT: 지원되는 운영체제 이미지가 포함된 프로젝트입니다.

  • IMAGE_FAMILY_NAME: 컨피덴셜 VM 지원 운영체제 이미지의 계열입니다. --image를 추가로 지정하지 않으면 최신 이미지 버전이 선택됩니다.

  • MAINTENANCE_POLICY: SEV를 사용하는 N2D 머신 유형의 경우 실시간 이전 지원을 위해 이 값을 MIGRATE로 설정합니다. 다른 모든 머신 유형의 경우 라이브 마이그레이션을 지원하지 않으므로 이 값을 TERMINATE로 설정합니다.

예시

다음 명령어 중 하나를 실행하여 AMD SEV-SNP를 사용하여 my-project 프로젝트의 us-central1-a 영역에 my-instance라는 n2d-standard-2 인스턴스를 만듭니다.

cURL(Linux, macOS, Cloud Shell)

curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
            "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
            "name": "my-instance",
            "minCpuPlatform": "AMD Milan",
            "confidentialInstanceConfig": {
              "confidentialInstanceType": "SEV_SNP"
            },
            "disks": [
              {
                "boot": true,
                "initializeParams": {
                  "sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
                }
              }
            ],
            "networkInterfaces": [
              {
                "nicType": "gVNIC"
              }
            ],
            "scheduling": {
              "automaticRestart": true,
              "nodeAffinities": [],
              "preemptible": false,
              "onHostMaintenance": "TERMINATE"
            }
          }' \
      https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances

PowerShell(Windows)

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
$body = @"
{
  "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
  "name": "my-instance",
  "minCpuPlatform": "AMD Milan",
  "confidentialInstanceConfig": {
    "confidentialInstanceType": "SEV_SNP"
  },
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/ubuntu-os-cloud/global/images/family/ubuntu-2404-lts-amd64"
      }
    }
  ],
  "networkInterfaces": [
    {
      "nicType": "gVNIC"
    }
  ],
  "scheduling": {
    "automaticRestart": true,
    "nodeAffinities": [],
    "preemptible": false,
    "onHostMaintenance": "TERMINATE"
  }
}
"@
Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://compute.googleapis.com/compute/projects/my-project/zones/us-central1-a/instances" | Select-Object -Expand Content

응답

생성 요청에 대한 응답은 다음 예와 유사합니다.

{
  "kind": "compute#operation",
  "id": "0000000000000000000",
  "name": "operation-0000000000000-0000000000000-00000000-00000000",
  "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
  "operationType": "insert",
  "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance",
  "targetId": "0000000000000000000",
  "status": "RUNNING",
  "user": "alex@example.com",
  "progress": 0,
  "insertTime": "2024-09-29T18:06:52.174-07:00",
  "startTime": "2024-09-29T18:06:52.175-07:00",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-0000000000000-0000000000000-00000000-00000000"
}

selfLinkGET 요청을 전송하여 VM 생성 진행 상황을 확인할 수 있습니다.

GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/operations/OPERATION_ID

C2D 머신 유형에 더 높은 네트워크 대역폭 사용 설정

가장 큰 세 가지 C2D Compute Engine VM 모양(32, 56, 112)은 높은 대역폭 네트워킹을 지원합니다. 등급 1 네트워크 대역폭 구성을 선택하면 데이터 아웃바운드 전송 대역폭이 기본 32Gbps에서 50Gbps 또는 100Gbps로 증가합니다. 높은 등급 1 대역폭 속도를 얻으려면 인스턴스에서 gVNIC 가상 네트워크 드라이버를 실행해야 합니다. 더 높은 대역폭으로 VM 구성에 대해 자세히 알아보세요.

다음 단계

Cloud Monitoring을 사용하여 컨피덴셜 VM 인스턴스의 유효성을 검사하는 방법을 알아보세요.