Vertex AI Pipelines용으로 Google Cloud 프로젝트 구성

Vertex AI Pipelines를 사용하여 머신 러닝(ML) 파이프라인을 조정하려면 먼저 Google Cloud 프로젝트를 설정해야 합니다. Vertex ML Metadata에 사용되는 메타데이터 저장소와 같은 일부 리소스는 파이프라인을 처음 실행할 때 Google Cloud 프로젝트에 생성됩니다.

다음 안내에 따라 Vertex AI Pipelines용으로 프로젝트를 구성하세요.

  1. Google Cloud 프로젝트를 만들고 Vertex AI Pipelines에 사용할 수 있도록 구성합니다.

  2. 서비스 계정을 지정하지 않으면 Vertex AI Pipelines가 Compute Engine 기본 서비스 계정을 사용하여 파이프라인을 실행합니다. Compute Engine 기본 서비스 계정에 대한 자세한 내용은 Compute Engine 기본 서비스 계정 사용을 참조하세요.

    파이프라인 실행을 위해 서비스 계정을 만든 후 파이프라인 실행에 필요한 Google Cloud 리소스에 대해 세부적인 권한을 이 계정에 부여하는 것이 좋습니다.

  3. Vertex AI Pipelines는 Cloud Storage를 사용하여 파이프라인 실행의 아티팩트를 저장합니다. Cloud Storage 버킷을 만들고 이 버킷에 대한 액세스 권한을 서비스 계정에 부여합니다.

  4. Vertex AI Pipelines는 Vertex ML Metadata를 사용하여 파이프라인 실행으로 생성된 메타데이터를 저장합니다. 파이프라인을 처음 실행할 때 프로젝트의 메타데이터 저장소가 없으면 Vertex AI가 프로젝트의 메타데이터 저장소를 만듭니다.

    고객 관리 암호화 키(CMEK)를 사용하여 데이터를 암호화하려면 파이프라인을 실행하기 전에 CMEK 키를 사용하여 메타데이터 저장소를 만들 수 있습니다. 그렇지 않고 프로젝트에 기존 기본 메타데이터 저장소가 없으면 파이프라인을 처음 실행할 때 사용되는 CMEK 키를 사용하여 Vertex AI가 프로젝트의 메타데이터 저장소를 만듭니다. 메타데이터 저장소를 만든 다음에는 파이프라인 실행에 사용된 CMEK 키와 다른 CMEK 키를 사용합니다.

Google Cloud 프로젝트 설정

다음 안내에 따라 Google Cloud 프로젝트를 만들고 Vertex AI Pipelines에 사용하도록 구성합니다.

  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 Vertex AI, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. Update and install gcloud components:

    gcloud components update
    gcloud components install beta
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  10. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.
  12. To initialize the gcloud CLI, run the following command:

    gcloud init
  13. Update and install gcloud components:

    gcloud components update
    gcloud components install beta

세분화된 권한으로 서비스 계정 구성

파이프라인을 실행할 때 서비스 계정을 지정할 수 있습니다. 파이프라인 실행은 이 서비스 계정의 권한으로 작동합니다.

서비스 계정을 지정하지 않으면 파이프라인 실행에 Compute Engine 기본 서비스 계정이 사용됩니다. Compute Engine 기본 서비스 계정에 대한 자세한 내용은 Compute Engine 기본 서비스 계정 사용을 참조하세요.

  • 다음 안내에 따라 서비스 계정을 만들고 Google Cloud 리소스에 대해 세부 권한을 부여합니다.

    1. 다음 명령어를 실행하여 서비스 계정을 만듭니다.

      gcloud iam service-accounts create SERVICE_ACCOUNT_ID \
          --description="DESCRIPTION" \
          --display-name="DISPLAY_NAME" \
          --project=PROJECT_ID
      

      다음 값을 바꿉니다.

      • SERVICE_ACCOUNT_ID: 서비스 계정의 ID
      • DESCRIPTION: (선택사항) 서비스 계정에 대한 설명입니다.
      • DISPLAY_NAME: 이 서비스 계정의 표시 이름입니다.
      • PROJECT_ID: 서비스 계정을 만들 프로젝트입니다.

      서비스 계정 만들기에 대해 자세히 알아보세요.

    2. 서비스 계정에 Vertex AI 액세스 권한을 부여합니다. 액세스 변경사항이 전파되는 데 다소 시간이 걸릴 수 있습니다. 자세한 내용은 액세스 변경 전파를 참조하세요.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/aiplatform.user"
      

      다음 값을 바꿉니다.

      • PROJECT_ID: 서비스 계정이 생성된 프로젝트
      • SERVICE_ACCOUNT_ID: 서비스 계정의 ID
    3. Artifact Registry를 사용하여 컨테이너 이미지와 Kubeflow Pipelines 템플릿을 호스팅할 수 있습니다. 있습니다.

      Artifact Registry에 대한 자세한 내용은 Artifact Registry 문서를 참고하세요.

    4. 파이프라인에서 사용하는 모든 Google Cloud 리소스에 대한 액세스 권한을 서비스 계정에 부여합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="ROLE_NAME"
      

      다음 값을 바꿉니다.

      • PROJECT_ID: 서비스 계정이 생성된 프로젝트
      • SERVICE_ACCOUNT_ID: 서비스 계정의 ID
      • ROLE_NAME: 이 서비스 계정에 부여할 Identity and Access Management 역할입니다.
    5. Vertex AI Pipelines를 사용하여 이 서비스 계정으로 파이프라인을 실행하려면 다음 명령어를 실행하여 사용자 계정에 해당 서비스 계정에 대한 roles/iam.serviceAccountUser 역할을 부여합니다.

      gcloud iam service-accounts add-iam-policy-binding \
          SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
          --member="user:USER_EMAIL" \
          --role="roles/iam.serviceAccountUser"
      

      다음 값을 바꿉니다.

      • SERVICE_ACCOUNT_ID: 서비스 계정의 ID
      • PROJECT_ID: 서비스 계정이 생성된 프로젝트
      • USER_EMAIL: 파이프라인을 이 서비스 계정으로 실행하는 사용자의 이메일 주소
  • Compute Engine 기본 서비스 계정을 사용하여 파이프라인을 실행하려는 경우 Compute Engine API를 사용 설정하고 기본 서비스 계정에 Vertex AI 액세스 권한을 부여합니다. 액세스 변경사항이 전파되는 데 다소 시간이 걸릴 수 있습니다. 자세한 내용은 액세스 변경 전파를 참조하세요.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/aiplatform.user"
    

    다음 값을 바꿉니다.

    • PROJECT_ID: 기본 서비스 계정이 생성된 프로젝트
    • PROJECT_NUMBER: 기본 서비스 계정이 생성된 프로젝트 번호

    Enable the API

파이프라인 아티팩트에 대해 Cloud Storage 버킷 구성

Vertex AI Pipelines는 Cloud Storage를 사용하여 파이프라인 실행의 아티팩트를 저장합니다. 다음 안내에 따라 Cloud Storage 버킷을 만들고 서비스 계정(또는 Compute Engine 기본 서비스 계정)에 해당 버킷에서 객체를 읽고 쓸 수 있는 액세스 권한을 부여합니다.

  1. 다음 명령어를 실행하여 파이프라인을 실행하려는 리전에 Cloud Storage 버킷을 만듭니다.

    gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
    

    다음 값을 바꿉니다.

    • PROJECT_ID: 버킷이 연결된 프로젝트 지정
    • BUCKET_LOCATION: 버킷의 위치 지정. 예를 들면 US-CENTRAL1입니다.
    • BUCKET_NAME: 이름 지정 요구사항에 따라 버킷에 지정할 이름. 예를 들면 my-bucket입니다.

    Cloud Storage 버킷 만들기에 대해 자세히 알아봅니다.

  2. 다음 명령어를 실행하여 서비스 계정에 이전 단계에서 만든 버킷에 있는 파이프라인 아티팩트를 읽고 쓸 수 있는 액세스 권한을 부여합니다.

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    다음 값을 바꿉니다.

    • SERVICE_ACCOUNT_ID: 서비스 계정의 ID
    • PROJECT_ID: 서비스 계정이 생성된 프로젝트
    • BUCKET_NAME: 서비스 계정에 부여하는 액세스 권한의 대상 버킷 이름

    또는 Compute Engine 기본 서비스 계정을 사용하여 파이프라인을 실행하려면 gcloud iam service-accounts list 명령어를 실행하여 해당 계정의 프로젝트 번호를 찾습니다.

    gcloud iam service-accounts list
    

    Compute Engine 기본 서비스 계정 이름은 PROJECT_NUMBER-compute@developer.gserviceaccount.com과 같이 지정됩니다.

    다음 명령어를 실행하여 Compute Engine 기본 서비스 계정에 이전 단계에서 만든 버킷에서 파이프라인 아티팩트를 읽고 쓸 수 있는 액세스 권한을 부여합니다.

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    다음 값을 바꿉니다.

    • PROJECT_NUMBER: Compute Engine 기본 서비스 계정의 프로젝트 번호
    • BUCKET_NAME: 서비스 계정에 부여하는 액세스 권한의 대상 버킷 이름

    Cloud Storage 버킷에 대한 액세스 제어에 대해 자세히 알아보세요.

CMEK를 사용하는 메타데이터 저장소 만들기(선택사항)

다음 안내에 따라 CMEK를 만들고 이 CMEK를 사용하는 Vertex ML Metadata 저장소를 설정합니다.

  1. Cloud Key Management Service를 사용하여 고객 관리 암호화 키를 구성합니다.

  2. 다음 REST 호출을 사용하고 CMEK를 사용해서 프로젝트의 기본 메타데이터 저장소를 만듭니다.

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

    • LOCATION_ID: 리전
    • PROJECT_ID: 프로젝트 ID
    • KEY_RING: 암호화 키가 설정된 Cloud Key Management Service 키링의 이름
    • KEY_NAME: 이 메타데이터 저장소에 사용하려는 암호화 키의 이름

    HTTP 메서드 및 URL:

    POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default

    JSON 요청 본문:

    {
      "encryption_spec": {
        "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
      },
    }
    

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

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

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata",
        "genericMetadata": {
          "createTime": "2021-05-18T18:47:14.494997Z",
          "updateTime": "2021-05-18T18:47:14.494997Z"
        }
      }
    }