영구 리소스 만들기

영구 리소스를 만들면 학습 서비스는 먼저 제공된 사양에 따라 Compute Engine 리소스 풀에서 리소스를 찾은 후 자동으로 장기 실행 클러스터를 프로비저닝합니다. 이 페이지에서는 Google Cloud 콘솔, Google Cloud CLI, Vertex AI SDK for Python, REST API를 사용하여 커스텀 학습 작업을 실행하기 위한 영구 리소스를 만드는 방법을 보여줍니다.

필요한 역할

영구 리소스를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 Vertex AI 관리자(roles/aiplatform.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 영구 리소스를 만드는 데 필요한 aiplatform.persistentResources.create 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

영구 리소스 만들기

영구 리소스를 만드는 방법을 보려면 다음 탭 중 하나를 선택합니다.

Console

Google Cloud 콘솔을 사용하여 영구 리소스를 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 영구 리소스 페이지로 이동합니다.

    영구 리소스로 이동

  2. 클러스터 만들기를 클릭합니다.

  3. 다음과 같이 클러스터를 구성합니다.

    • 이름: 클러스터의 이름을 입력합니다.
    • 설명: (선택사항) 클러스터에 대한 설명을 입력합니다.
    • 리전: 클러스터를 만들 리전을 선택합니다.
  4. 계속을 클릭합니다.

  5. 다음과 같이 클러스터의 컴퓨팅 리소스를 구성합니다.

    1. 작업자 풀 1을 클릭합니다.
    2. 사용할 머신 계열의 탭을 선택하고 다음과 같이 작업자 풀을 구성합니다.

      범용

      범용 VM은 다양한 워크로드에 대한 최고의 가성비를 제공합니다.

      • 시리즈: 머신 시리즈를 선택합니다.
      • 머신 유형: 머신 유형을 선택합니다.
      • 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
      • 디스크 크기: 원하는 디스크 크기를 입력합니다.
      • 최소 복제본 수: 작업자 풀에 포함할 최소 복제본 수를 입력합니다.
      • 최대 복제본 수: (선택사항) 작업자 풀에서 허용되는 최대 복제본 수를 입력합니다. 지정하면 작업자 풀이 필요에 따라 구성된 최대 복제본 수까지 복제본 수를 자동으로 확장합니다.

      컴퓨팅 최적화

      컴퓨팅 최적화 VM은 코어당 최고의 성능을 제공하며 컴퓨팅 집약적인 워크로드에 최적화되어 있습니다.

      • 시리즈: 머신 시리즈를 선택합니다.
      • 머신 유형: 머신 유형을 선택합니다.
      • 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
      • 디스크 크기: 원하는 디스크 크기를 입력합니다.
      • 최소 복제본 수: 작업자 풀에 포함할 최소 복제본 수를 입력합니다.
      • 최대 복제본 수: (선택사항) 작업자 풀에서 허용되는 최대 복제본 수를 입력합니다. 지정하면 작업자 풀이 필요에 따라 구성된 최대 복제본 수까지 복제본 수를 자동으로 확장합니다.

      메모리 최적화

      메모리 최적화 VM은 메모리 집약적인 워크로드에 적합하며 다른 머신 계열보다 코어당 더 많은 메모리(최대 12TB)를 제공합니다.

      • 시리즈: 머신 시리즈를 선택합니다.
      • 머신 유형: 머신 유형을 선택합니다.
      • 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
      • 디스크 크기: 원하는 디스크 크기를 입력합니다.
      • 최소 복제본 수: 작업자 풀에 포함할 최소 복제본 수를 입력합니다.
      • 최대 복제본 수: (선택사항) 작업자 풀에서 허용되는 최대 복제본 수를 입력합니다. 지정하면 작업자 풀이 필요에 따라 구성된 최대 복제본 수까지 복제본 수를 자동으로 확장합니다.

      GPU

      이러한 가속기 최적화 VM은 머신러닝(HPC) 및 고성능 컴퓨팅(HPC)과 같은 대규모 병렬 컴퓨팅 통합 기기 아키텍처(CUDA) 컴퓨팅 워크로드에 적합합니다. 이 계열은 GPU가 필요한 워크로드에 최적인 옵션입니다.

      • GPU 유형: 사용할 GPU 유형을 선택합니다.
      • GPU 수: 사용할 GPU 수를 입력합니다.
      • 시리즈: 머신 시리즈를 선택합니다.
      • 머신 유형: 머신 유형을 선택합니다.
      • 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
      • 디스크 크기: 원하는 디스크 크기를 입력합니다.
      • 최소 복제본 수: 작업자 풀에 포함할 최소 복제본 수를 입력합니다.
      • 최대 복제본 수: (선택사항) 작업자 풀에서 허용되는 최대 복제본 수를 입력합니다. 지정하면 작업자 풀이 필요에 따라 구성된 최대 복제본 수까지 복제본 수를 자동으로 확장합니다.
    3. 완료를 클릭합니다.

    4. (선택사항) 작업자 풀을 더 추가하려면 작업자 풀 추가를 클릭합니다.

  6. 만들기를 클릭합니다.

gcloud

영구 리소스에 하나 이상의 리소스 풀이 포함될 수 있습니다. 영구 리소스에 여러 리소스 풀을 만들려면 여러 --resource-pool-spec 플래그를 지정합니다.

각 리소스 풀에는 자동 확장이 사용 설정되거나 사용 중지될 수 있습니다. 자동 확장을 사용 설정하려면 min_replica_countmax_replica_count를 지정합니다.

모든 리소스 풀 구성을 명령줄의 일부로 지정하거나 --config 플래그를 사용해서 구성이 포함된 YAML 파일에 대한 경로를 지정합니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 영구 리소스를 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 영구 리소스를 만들려는 리전입니다. 지원되는 리전 목록은 기능 가용성을 참조하세요.
  • PERSISTENT_RESOURCE_ID: 영구 리소스의 ID입니다.
  • DISPLAY_NAME: (선택사항) 영구 리소스의 표시 이름입니다.
  • MACHINE_TYPE: 사용할 VM 유형입니다. 지원되는 VM 목록은 머신 유형을 참조하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.machineType 필드에 해당합니다.
  • ACCELERATOR_TYPE: (선택사항) 리소스 풀의 각 VM에 연결할 GPU 유형입니다. 지원되는 GPU 목록은 GPU를 참조하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.acceleratorType 필드에 해당합니다.
  • ACCELERATOR_COUNT: (선택사항) 리소스 풀의 각 VM에 연결할 GPU 수입니다. 기본값은 1입니다. 이 필드는 ResourcePool API 메시지의 machineSpec.acceleratorCount 필드에 해당합니다.
  • REPLICA_COUNT: 이 리소스 풀을 만들 때 만들 복제본 수입니다. 이 필드는 ResourcePool API 메시지의 replicaCount 필드에 해당합니다. MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 지정하지 않은 경우 이 필드가 필요합니다.
  • MIN_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 축소할 수 있는 최소 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT가 모두 필요합니다.
  • MAX_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 확장할 수 있는 최대 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT가 모두 필요합니다.
  • BOOT_DISK_TYPE: (선택사항) 리소스 풀에 있는 각 VM의 부팅 디스크로 사용할 디스크의 유형입니다. 이 필드는 ResourcePool API 메시지의 diskSpec.bootDiskType 필드에 해당합니다. 허용되는 값은 다음과 같습니다.
    • pd-standard(기본)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (선택사항) 리소스 풀에 있는 각 VM의 부팅 디스크에 대한 디스크 크기(GiB 단위)입니다. 허용되는 값은 100(기본값)~64000입니다. 이 필드는 ResourcePool API 메시지의 diskSpec.bootDiskSizeGb 필드에 해당합니다.
  • CONFIG: 영구 리소스 YAML 구성 파일의 경로입니다. 이 파일에는 ResourcePool 목록이 포함되어야 합니다. 옵션이 구성 파일 및 명령줄 인수 모두에 지정된 경우 명령줄 인수가 구성 파일보다 우선 적용됩니다. 밑줄이 있는 키는 유효하지 않습니다.

    YAML 구성 파일 예시:

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows(PowerShell)

gcloud ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows(cmd.exe)

gcloud ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

다음과 비슷한 응답이 표시됩니다.

Using endpoint [http://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully.

You may view the status of your PersistentResource create operation with the command

  $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789

gcloud 명령어 예시:

gcloud ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_K80,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

고급 gcloud 구성

앞의 예시에서 사용할 수 없는 구성 옵션을 지정하려면 --config 플래그를 사용하여 persistentResources 필드를 포함하는 로컬 환경의 config.yaml 파일에 경로를 지정합니다. 예를 들면 다음과 같습니다.

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG

Python

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

# Create the persistent resource. This method returns the created resource.
# Setting `sync` to `FALSE` makes the method is non-blocking and the resource
# object returned syncs when the method completes.
my_example_resource = persistent_resource.PersistentResource.create(
    persistent_resource_id=EXAMPLE_PERSISTENT_RESOURCE_ID,
    display_name=EXAMPLE_PERSISTENT_RESOURCE_NAME,
    resource_pools=[
        EXAMPLE_RESOURCE_POOL # EXAMPLE_AUTOSCALED_RESOURCE_POOL
    ],
    labels=EXAMPLE_LABELS,
    sync=SYNC,
)

if not SYNC:
    my_example_resource.wait()

REST

영구 리소스에 리소스 풀(machine_spec)이 하나 이상 포함될 수 있고 각 리소스 풀에 자동 확장을 사용 설정 또는 사용 중지할 수 있습니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 영구 리소스를 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 영구 리소스를 만들려는 리전입니다. 지원되는 리전 목록은 기능 가용성을 참조하세요.
  • PERSISTENT_RESOURCE_ID: 영구 리소스의 ID입니다.
  • DISPLAY_NAME: (선택사항) 영구 리소스의 표시 이름입니다.
  • MACHINE_TYPE: 사용할 VM 유형입니다. 지원되는 VM 목록은 머신 유형을 참조하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.machineType 필드에 해당합니다.
  • ACCELERATOR_TYPE: (선택사항) 리소스 풀의 각 VM에 연결할 GPU 유형입니다. 지원되는 GPU 목록은 GPU를 참조하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.acceleratorType 필드에 해당합니다.
  • ACCELERATOR_COUNT: (선택사항) 리소스 풀의 각 VM에 연결할 GPU 수입니다. 기본값은 1입니다. 이 필드는 ResourcePool API 메시지의 machineSpec.acceleratorCount 필드에 해당합니다.
  • REPLICA_COUNT: 이 리소스 풀을 만들 때 만들 복제본 수입니다. 이 필드는 ResourcePool API 메시지의 replicaCount 필드에 해당합니다. MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 지정하지 않은 경우 이 필드가 필요합니다.
  • MIN_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 축소할 수 있는 최소 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT가 모두 필요합니다.
  • MAX_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 확장할 수 있는 최대 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT가 모두 필요합니다.
  • BOOT_DISK_TYPE: (선택사항) 리소스 풀에 있는 각 VM의 부팅 디스크로 사용할 디스크의 유형입니다. 이 필드는 ResourcePool API 메시지의 diskSpec.bootDiskType 필드에 해당합니다. 허용되는 값은 다음과 같습니다.
    • pd-standard(기본)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (선택사항) 리소스 풀에 있는 각 VM의 부팅 디스크에 대한 디스크 크기(GiB 단위)입니다. 허용되는 값은 100(기본값)~64000입니다. 이 필드는 ResourcePool API 메시지의 diskSpec.bootDiskSizeGb 필드에 해당합니다.

HTTP 메서드 및 URL:

POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

JSON 요청 본문:

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_DISK_SIZE_GB
      }
    }
  ]
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-02-08T21:17:15.009668Z",
      "updateTime": "2023-02-08T21:17:15.009668Z"
    }
  }
}

리소스 부족

A100 GPU와 같은 리소스가 부족할 수 있습니다. 이로 인해 지정된 리전에 사용할 수 있는 리소스가 없을 때 영구적으로 리소스를 만들 수 없습니다. 이러한 경우 복제본 수를 줄이거나 다른 가속기 유형으로 변경하거나 많이 사용하는 시간이 아닌 시간 중에 다시 시도하거나 다른 리전을 사용하면 됩니다.

다음 단계