영구 리소스를 만들면 학습 서비스는 먼저 제공된 사양에 따라 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 콘솔을 사용하여 영구 리소스를 만들려면 다음을 수행합니다.
Google Cloud 콘솔에서 영구 리소스 페이지로 이동합니다.
클러스터 만들기를 클릭합니다.
다음과 같이 클러스터를 구성합니다.
- 이름: 클러스터 이름을 입력합니다.
- 설명: (선택사항) 클러스터 설명을 입력합니다.
- 리전: 클러스터를 만들 리전을 선택합니다.
계속을 클릭합니다.
다음과 같이 클러스터의 컴퓨팅 리소스를 구성합니다.
- 작업자 풀 1을 클릭합니다.
사용할 머신 계열의 탭을 선택하고 다음과 같이 작업자 풀을 구성합니다.
범용
범용 VM은 다양한 워크로드에 대한 최고의 가성비를 제공합니다.
- 시리즈: 머신 시리즈를 선택합니다.
- 머신 유형: 머신 유형을 선택합니다.
- 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
- 디스크 크기: 원하는 디스크 크기를 입력합니다.
- 최소 복제본 수: 작업자 풀에 있어야 하는 최소 복제본 수를 입력합니다.
- 최대 복제본 수: (선택사항) 작업자 풀에 허용되는 최대 복제본 수를 입력합니다. 지정된 경우 작업자 풀에서 필요에 따라 복제본 수를 구성된 최대 복제본 수까지 자동으로 확장합니다.
컴퓨팅 최적화
컴퓨팅 최적화 VM은 가장 높은 코어당 성능을 제공하며 컴퓨팅 집약적 워크로드에 최적화되어 있습니다.
- 시리즈: 머신 시리즈를 선택합니다.
- 머신 유형: 머신 유형을 선택합니다.
- 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
- 디스크 크기: 원하는 디스크 크기를 입력합니다.
- 최소 복제본 수: 작업자 풀에 있어야 하는 최소 복제본 수를 입력합니다.
- 최대 복제본 수: (선택사항) 작업자 풀에 허용되는 최대 복제본 수를 입력합니다. 지정된 경우 작업자 풀에서 필요에 따라 복제본 수를 구성된 최대 복제본 수까지 자동으로 확장합니다.
메모리 최적화
메모리 최적화 VM은 메모리 집약적인 워크로드에 적합하며 다른 머신 계열보다 코어당 더 많은 메모리(최대 12TB)를 제공합니다.
- 시리즈: 머신 시리즈를 선택합니다.
- 머신 유형: 머신 유형을 선택합니다.
- 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
- 디스크 크기: 원하는 디스크 크기를 입력합니다.
- 최소 복제본 수: 작업자 풀에 있어야 하는 최소 복제본 수를 입력합니다.
- 최대 복제본 수: (선택사항) 작업자 풀에 허용되는 최대 복제본 수를 입력합니다. 지정된 경우 작업자 풀에서 필요에 따라 복제본 수를 구성된 최대 복제본 수까지 자동으로 확장합니다.
GPU
이러한 가속기 최적화 VM은 머신러닝(HPC) 및 고성능 컴퓨팅(HPC)과 같은 대규모 병렬 컴퓨팅 통합 기기 아키텍처(CUDA) 컴퓨팅 워크로드에 적합합니다. 이 계열은 GPU가 필요한 워크로드에 최적인 옵션입니다.
- GPU 유형: 사용할 GPU 유형을 선택합니다.
- GPU 수: 사용할 GPU 수를 입력합니다.
- 시리즈: 머신 시리즈를 선택합니다.
- 머신 유형: 머신 유형을 선택합니다.
- 디스크 유형: 표준 디스크 또는 SSD 디스크를 선택합니다.
- 디스크 크기: 원하는 디스크 크기를 입력합니다.
- 최소 복제본 수: 작업자 풀에 있어야 하는 최소 복제본 수를 입력합니다.
- 최대 복제본 수: (선택사항) 작업자 풀에 허용되는 최대 복제본 수를 입력합니다. 지정된 경우 작업자 풀에서 필요에 따라 복제본 수를 구성된 최대 복제본 수까지 자동으로 확장합니다.
완료를 클릭합니다.
(선택사항) 작업자 풀을 추가하려면 작업자 풀 추가를 클릭합니다.
만들기를 클릭합니다.
gcloud
영구 리소스에 하나 이상의 리소스 풀이 포함될 수 있습니다. 영구 리소스에 여러 리소스 풀을 만들려면 여러 --resource-pool-spec
플래그를 지정합니다.
각 리소스 풀에는 자동 확장이 사용 설정되거나 사용 중지될 수 있습니다. 자동 확장을 사용 설정하려면 min_replica_count
및 max_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_COUNT 및 MAX_REPLICA_COUNT를 지정하지 않은 경우 이 필드가 필요합니다. - MIN_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 축소할 수 있는 최소 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNT 및 MAX_REPLICA_COUNT가 모두 필요합니다.
- MAX_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 확장할 수 있는 최대 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNT 및 MAX_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 [https://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_T4,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_COUNT 및 MAX_REPLICA_COUNT를 지정하지 않은 경우 이 필드가 필요합니다. - MIN_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 축소할 수 있는 최소 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNT 및 MAX_REPLICA_COUNT가 모두 필요합니다.
- MAX_REPLICA_COUNT: (선택사항) 이 리소스 풀에 대해 자동 확장으로 확장할 수 있는 최대 복제본 수입니다. 이 리소스 풀에서 자동 확장을 사용 설정하려면 MIN_REPLICA_COUNT 및 MAX_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 https://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와 같은 리소스가 부족할 수 있습니다. 이로 인해 지정된 리전에 사용할 수 있는 리소스가 없을 때 영구적으로 리소스를 만들 수 없습니다. 이러한 경우 복제본 수를 줄이거나 다른 가속기 유형으로 변경하거나 많이 사용하는 시간이 아닌 시간 중에 다시 시도하거나 다른 리전을 사용하면 됩니다.