4단계: 구성요소 설정
이 페이지에서는 Cortex Framework의 핵심인 Cortex Framework Data Foundation을 배포하는 네 번째 단계를 설명합니다. 이 단계에서는 배포에 필요한Google Cloud 서비스를 설정합니다.
Google Cloud 서비스 사용 설정
이 섹션에서는Google Cloud 프로젝트에서 다음 Google Cloud 서비스를 사용 설정합니다.
- BigQuery 인스턴스 및 데이터 세트
- Cloud Build API
- Cloud Storage 버킷
- 서비스 계정
- Cloud Resource Manager API
- Data Catalog API (Datamesh를 배포하는 경우)
- 워크플로 실행 (Meridian용 Cortex 배포 시)
- AI 플랫폼 (Cortex for Meridian 배포 시)
Cloud Shell을 사용하여 다음 서비스를 사용 설정합니다. Google Cloud
다음 명령어를 복사하여 붙여넣습니다.
gcloud config set project SOURCE_PROJECT gcloud services enable bigquery.googleapis.com \ cloudbuild.googleapis.com \ composer.googleapis.com \ storage-component.googleapis.com \ cloudresourcemanager.googleapis.com \ dataflow.googleapis.com \ datacatalog.googleapis.com \ workflowexecutions.googleapis.com \ workflows.googleapis.com \ aiplatform.googleapis.com
SOURCE_PROJECT
를 소스 프로젝트 ID로 바꿉니다.성공 메시지가 표시되면 Google Cloud 서비스가 사용 설정되어 있는지 확인합니다.
선택사항.Google Cloud 프로젝트에서 다음 Google Cloud 서비스를 사용 설정할 수 있습니다.
- 방향성 비순환 그래프 (DAG)를 통한 변경 데이터 캡처 (CDC) 처리, 계층 구조 평탄화 (SAP만 해당), 데이터 복제(SAP 외)를 위한 Cloud Composer 인스턴스를 설정하려면 Cloud Composer 문서를 참고하세요.
- 보고 템플릿에 연결하기 위한 Looker
- BigQuery Sharing (이전 명칭: Analytics Hub)에 연결된 데이터 세트는 날씨 DAG와 같은 일부 외부 소스에 사용됩니다. 고급 시나리오의 경우 이 구조를 원하는 다른 사용 가능한 소스로 채울 수 있습니다.
- Dataflow: Google Ads와 같은 여러 마케팅 데이터 세트를 위한 통합 도구입니다.
- Dataplex 범용 카탈로그: 데이터 메시를 빌드하는 데 사용됩니다. 자세한 내용은 데이터 메시 사용자 가이드를 참고하세요.
- Meridian이 포함된 Cortex Framework의 경우:
- Colab Enterprise: 실행 중에 Colab Enterprise 노트북을 실행하고 다음 항목에 액세스합니다.
- Cloud Storage의 노트북 및 구성 파일
- 관련 BigQuery 뷰 및 테이블을 쿼리합니다.
- 결과를 Cloud Storage에 다시 씁니다.
- 워크플로: 워크플로 및 Cloud Build를 실행하여 Colab Enterprise 노트북 실행을 트리거합니다.
실행 사용자에게 권한 부여
Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 실행 사용자에게 다음 권한을 부여하여 Cloud Build가 트리거된 프로젝트에서 배포를 실행합니다.
- 서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer
) - 스토리지 객체 뷰어(
roles/storage.objectViewer
) - 스토리지 관리자(
roles/storage.admin
) - Cloud Build 편집자(
roles/cloudbuild.builds.editor
) - 프로젝트 리더 (
roles/reader
) - BigQuery 작업 사용자(
roles/bigquery.jobUser
) BigQuery 데이터 편집자(
roles/bigquery.dataEditor
)
콘솔
Google Cloud 콘솔에서 IAM 페이지를 엽니다.
프로젝트를 선택하고 계속을 클릭합니다.
액세스 권한 부여를 클릭합니다.
실행 중인 사용자의 이메일 주소를 입력합니다.
드롭다운 메뉴에서 다음 역할을 선택합니다.
- 서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer
) - 스토리지 객체 뷰어(
roles/storage.objectViewer
) - 스토리지 관리자(
roles/storage.admin
) - Cloud Build 편집자(
roles/cloudbuild.builds.editor
) - 프로젝트 리더 (
roles/reader
) - BigQuery 작업 사용자(
roles/bigquery.jobUser
) - BigQuery 데이터 편집자(
roles/bigquery.dataEditor
)
- 서비스 사용량 소비자(
저장을 클릭합니다.
gcloud
사용자에게 역할을 부여하려면 add-iam-policy-binding
명령어를 실행하세요.
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/serviceusage.serviceUsageConsumer"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/storage.objectViewer"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/storage.admin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/reader"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/bigquery.dataEditor"
다음을 바꿉니다.
SOURCE_PROJECT
를 소스 프로젝트 ID로 바꿉니다.USER_EMAIL
을 실행 중인 사용자의 이메일로 바꿉니다. 예를 들면 user:my-user@example.com입니다. 주 구성원 또는member
유형의 전체 목록은 정책 바인딩 참조를 참고하세요.
Cloud Build 서비스 계정 만들기 및 구성
Cloud Build는 서비스 계정을 사용하여 사용자 대신 빌드를 실행합니다. 이 섹션에서는 Cortex Framework 배포를 위한 전용 서비스 계정을 만들고 Cloud Build 서비스 계정에 필요한 권한을 부여하는 방법을 안내합니다.
새 서비스 계정 만들기
보안 및 제어 강화를 위해 Cortex Framework 배포를 위한 전용 서비스 계정을 만듭니다. 새 서비스 계정을 만든 후 배포 프로세스 중에 _BUILD_ACCOUNT
대체 매개변수를 사용하여 이 서비스 계정을 지정할 수 있습니다.
시작하기 전에 IAM API를 사용 설정하고, 인증을 설정하고, IAM 서비스 계정 및 역할을 이해해야 합니다. 자세한 내용은 서비스 계정 만들기를 참고하세요.
Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 이 새 서비스 계정을 만듭니다.
콘솔
서비스 계정 페이지로 이동합니다.
나머지 단계는 Google Cloud 콘솔에 표시됩니다.
Google Cloud 프로젝트를 선택합니다.
서비스 계정 및 표시 이름을 설명과 함께 Google Cloud 콘솔에 입력합니다. Google Cloud 콘솔에서 이 이름을 기반으로 서비스 계정 ID가 생성됩니다. 필요한 경우 ID를 수정합니다. ID는 나중에 변경할 수 없습니다. 서비스 계정에 다음 기본값을 사용합니다.
- 이름: 'cortex-deployer'
- 설명: 'Cortex Deployer Service Account'
- 표시 이름: 'Cortex Deployer'
사용자에게 이 서비스 계정에 대한 액세스 권한을 부여합니다.
- 서비스 계정을 통해 배포를 실행할 수 있는 모든 사용자 (본인 포함)의 ID를 추가합니다.
- 서비스 계정 토큰 생성자 역할을 할당합니다. 이 역할에 대한 자세한 내용은 서비스 계정 역할을 참고하세요.
완료를 클릭하여 서비스 계정 만들기를 마칩니다.
이미 서비스 계정이 있는 경우 다음 단계를 따르세요.
- 서비스 계정으로 이동합니다.
- 서비스 계정을 선택합니다.
- 권한 탭을 클릭합니다.
- 액세스 권한 부여를 클릭합니다.
- 서비스 계정을 통해 배포를 실행할 수 있는 모든 사용자 (본인 포함)의 ID를 추가합니다.
- 서비스 계정 토큰 생성자 역할을 할당합니다.
gcloud
다음 명령어를 사용하여 IAM 정책을 통해 서비스 계정을 만듭니다.
gcloud iam service-accounts create cortex-deployer \ --description="Cortex Deployer Service Account" \ --display-name="Cortex Deployer"
다음 명령어를 사용하여 IAM 정책을 Google Cloud 프로젝트에 추가합니다.
gcloud projects add-iam-policy-binding SOURCE_PROJECT \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role="roles/cloudbuild.builds.editor"
서비스 계정을 통해 배포를 실행할 수 있는 모든 사용자 (본인 포함)의 ID를 추가하고 다음 명령어를 사용하여 서비스 계정 토큰 생성자 역할을 할당합니다.
gcloud iam service-accounts add-iam-policy-binding cortex-deployer\ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"
다음을 바꿉니다.
SOURCE_PROJECT
를 사용하여 Cortex Framework 데이터 파운데이션 배포를 위한 소스 프로젝트를 구성합니다.USER_EMAIL
: 실행 사용자 이메일
새 서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기를 참고하세요.
권한 부여
Cloud Build 서비스 계정에는 소스 프로젝트 (별도의 프로젝트에 배포하는 경우 타겟 프로젝트)에 특정 권한이 필요합니다. Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 다음 역할을 부여합니다.
- Cloud Build 서비스 계정 (
roles/cloudbuild.builds.builder
) - 서비스 계정 사용자 (
roles/iam.serviceAccountUser
) - BigQuery 데이터 편집자(
roles/bigquery.dataEditor
) - BigQuery 작업 사용자(
roles/bigquery.jobUser
) - 로그 작성자(
roles/logging.logWriter
) - Colab Enterprise 관리자 (
roles/aiplatform.colabEnterpriseAdmin
- Cortex for Meridian 배포 시) - 스토리지 객체 사용자 (
roles/storage.objectUser
- Meridian용 Cortex를 배포하는 경우) 워크플로 편집자 (
roles/workflows.editor
- Meridian용 Cortex를 배포하는 경우)
콘솔
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
소스 프로젝트를 선택합니다.
액세스 권한 부여를 클릭합니다.
이전 단계의 기본 Cloud Build 서비스 계정을 새 주 구성원으로 추가합니다.
역할 선택 드롭다운 메뉴에서 Cloud Build 서비스 계정을 검색한 다음 Cloud Build 서비스 계정을 클릭합니다.
이전 단계를 반복하여 나머지 역할을 추가합니다.
- 서비스 계정 사용자
- BigQuery 데이터 편집자
- BigQuery 작업 사용자
- 로그 작성자
- Colab Enterprise 관리자 (Meridian용 Cortex 배포 시)
- 스토리지 객체 사용자 (Cortex for Meridian을 배포하는 경우)
- 워크플로 편집기 (Meridian용 Cortex를 배포하는 경우)
저장을 클릭합니다.
서비스 계정과 부여된 역할이 IAM 페이지에 나열되는지 확인합니다. IAM 역할을 부여했습니다.
gcloud
다음 명령어를 사용하여 Cloud Build 서비스 계정에 역할을 부여합니다.
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/cloudbuild.builds.builder"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/bigquery.dataEditor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/aiplatform.colabEnterpriseAdmin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/storage.objectUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/workflows.editor"
다음을 바꿉니다.
SOURCE_PROJECT
를 소스 프로젝트 ID로 바꿉니다.- Cloud Build 서비스 계정(형식:
CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com
)으로CLOUD_BUILD_SA
자세한 내용은 IAM 페이지를 사용하여 Cloud Build 서비스 계정에 역할 부여 및 버킷에 IAM 정책 설정 및 관리를 참고하세요.
Meridian용 Cortex의 추가 서비스 계정 만들기
Cortex Framework를 배포할 때 Meridian에는 별도의 서비스 계정이 필요합니다. Meridian에 배포하지 않는 경우 이 단계를 건너뛸 수 있습니다. 다음에는 별도의 서비스 계정이 필요합니다.
- 워크플로 및 Cloud Build를 실행하여 Colab Enterprise 노트북 실행을 트리거합니다.
- 다음 항목에 액세스하여 Colab Enterprise 노트북을 실행합니다.
- Cloud Storage의 노트북 및 구성 파일
- 관련 BigQuery 뷰 및 테이블을 쿼리합니다.
- 결과를 Cloud Storage에 다시 씁니다.
다음 명령어를 사용하여 Meridian용 Cortex의 서비스 계정을 만듭니다.
gcloud iam service-accounts create cortex-meridian-colab-runner --project= PROJECT_ID \
--description="Cortex for Meridian Colab Runner Service Account" \
--display-name="Cortex Meridian Runner"
다음을 바꿉니다.
PROJECT_ID
를 Meridian용 Cortex가 배포된 프로젝트 ID로 바꿉니다.cortex-meridian-colab-runner
: 원하는 경우 다른 서비스 계정 ID를 사용할 수 있습니다.cortex-meridian-colab-runner
이 기본값이며 이를 변경하면 다른 명령어를 조정해야 할 수 있습니다.
Meridian용 Cortex의 전용 서비스 계정에 필요한 최소 역할은 다음과 같습니다.
- BigQuery 데이터 뷰어(
roles/bigquery.dataViewer
) - BigQuery 작업 사용자(
roles/bigquery.jobUser
) - BigQuery 읽기 세션 사용자(
roles/bigquery.readSessionUser
) - Cloud Build 편집자(
roles/cloudbuild.builds.editor
) - Colab Enterprise 관리자 (
roles/aiplatform.colabEnterpriseAdmin
) - 로그 작성자(
roles/logging.logWriter
) - 노트북 런타임 관리자 (
aiplatform.notebookRuntimeAdmin
) - 스토리지 관리자(
roles/storage.admin
) - 스토리지 객체 사용자(
roles/storage.objectUser
) - Vertex AI Colab 서비스 에이전트 (
roles/aiplatform.colabServiceAgent
)
다음 명령어를 사용하여 Meridian용 Cortex의 전용 서비스 계정에 역할을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.dataViewer'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.jobUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.readSessionUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/cloudbuild.builds.editor'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.colabEnterpriseAdmin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/logging.logWriter'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.notebookRuntimeAdmin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/storage.admin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/storage.objectUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.colabServiceAgent'
다음을 바꿉니다.
PROJECT_ID
를 Meridian용 Cortex가 배포된 프로젝트 ID로 바꿉니다.SERVICE_ACCOUNT_EMAIL
를 Meridian용 Cortex의 서비스 계정으로 바꿉니다.
선택적 단계
배포를 더 효과적으로 맞춤설정하려면 다음 선택 단계를 따르세요.
- 데이터 메시: 설명을 넘어 기능을 구현하기 위해 데이터 메시의 기본값을 수정해야 하는 경우 데이터 메시 개념 및 데이터 메시 사용자 가이드를 참고하세요.
DAG 관련 파일을 저장할 스토리지 버킷 만들기
배포 중에 생성된 처리 DAG 스크립트 및 기타 임시 파일을 저장하려면 스토리지 버킷이 필요합니다. 이러한 스크립트는 배포 후 Cloud Composer 또는 Apache Airflow 인스턴스로 수동으로 이동해야 합니다.
다음 단계에 따라 Google Cloud CLI 또는 Google Cloud 콘솔에서 스토리지 버킷을 만들 수 있습니다.
콘솔
Cloud Storage로 이동합니다.
BigQuery 데이터 세트와 동일한 리전에 버킷을 만듭니다.
생성된 버킷을 선택합니다.
Permissions
탭으로 이동합니다.빌드 명령어를 실행하는 사용자 ID 또는 생성한 서비스 계정에
Storage Object Creator
권한을 부여합니다. 자세한 내용은 버킷에 새 조건 설정: 콘솔을 참고하세요.
gcloud
Cloud Shell에서 다음 명령어를 사용하여 버킷을 만듭니다.
gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
다음을 바꿉니다.
DAG_BUCKET_NAME
을 새 버킷 이름으로 바꿉니다.REGION/MULTI_REGION
을 BigQuery 데이터 세트와 동일한 리전으로 바꿉니다.
다음 명령어를 사용하여 서비스 계정에
Storage Object Creator
권한을 할당합니다.gcloud storage buckets add-iam-policy-binding gs://DAG_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectCreator
다음을 바꿉니다.
CLOUD_BUILD_SA
를 Cloud Build 기본 서비스 계정으로 바꿉니다.DAG_BUCKET_NAME
을 새 버킷 이름으로 바꿉니다.
로그용 스토리지 버킷 만들기
로그를 저장할 Cloud Build 프로세스용 특정 버킷을 만들 수 있습니다. 이는 로그에 저장될 수 있는 데이터를 특정 리전으로 제한하려는 경우에 유용합니다. Google Cloud CLI 또는 Google Cloud 콘솔에서 로그용 스토리지 버킷을 만들 수 있습니다.
콘솔
로그용 특정 버킷을 만들려면 다음 단계를 따르세요.
Cloud Storage로 이동합니다.
배포가 실행될 리전에 버킷을 만듭니다.
생성된 버킷을 선택합니다.
Permissions
탭으로 이동합니다.빌드 명령어를 실행하는 사용자 ID 또는 생성한 서비스 계정에
Storage Object Admin
권한을 부여합니다. 자세한 내용은 버킷에 새 조건 설정: 콘솔을 참고하세요.
gcloud
로그용 특정 버킷을 만들려면 다음 명령어를 사용하세요.
Cloud Shell에서 다음 명령어를 사용하여 버킷을 만듭니다.
gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
다음을 바꿉니다.
REGION/MULTI_REGION
을 버킷을 만들 선택한 리전으로 바꿉니다.LOGS_BUCKET_NAME
을 새 버킷의 이름으로 바꿉니다.
다음 명령어를 사용하여 서비스 계정에
Storage Object Admin
권한을 할당합니다.gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectAdmin
다음을 바꿉니다.
CLOUD_BUILD_SA
를 Cloud Build 기본 서비스 계정으로 바꿉니다.LOGS_BUCKET_NAME
을 새 버킷 이름으로 바꿉니다.
다음 단계
이 단계를 완료한 후 다음 배포 단계로 이동합니다.