4단계: 구성요소 설정
이 페이지에서는 Cortex Framework의 핵심인 Cortex Framework Data Foundation을 배포하는 네 번째 단계를 설명합니다. 이 단계에서는 배포에 필요한 Google Cloud 서비스를 설정합니다.
에서 Cortex Framework Data Foundation을 배포하도록 특별히 설계되었습니다.서비스 사용 설정 Google Cloud
이 섹션에서는 프로젝트에서 다음 Google Cloud 서비스를 사용 설정합니다 Google Cloud .
- BigQuery 인스턴스 및 데이터 세트
- Cloud Build API
- Cloud Storage 버킷
- 서비스 계정
- Cloud Resource Manager API
- 워크플로 실행 (Meridian용 Cortex 배포 시)
- AI Platform (Meridian용 Cortex 배포 시)
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.comSOURCE_PROJECT를 소스 프로젝트 ID로 바꿉니다.성공 메시지가 표시되면 Google Cloud 서비스가 사용 설정되었는지 확인합니다.
선택사항. 프로젝트에서 다음 서비스를 사용 설정할 수 있습니다. Google Cloud Google Cloud
- Cloud Composer 를 통한 변경 데이터 캡처 (CDC) 처리, 계층 구조 평면화 (SAP만 해당), 데이터 복제 (SAP 이외만 해당)를 위한 Directed Acyclic Graphs (DAG). 인스턴스를 설정하려면 Cloud Composer 문서를 참조하세요.
- 보고 템플릿에 연결하기 위한 Looker
- BigQuery Sharing (이전 명칭: Analytics Hub) 연결 데이터 세트는 Weather DAG와 같은 일부 외부 소스에 사용됩니다. 고급 시나리오의 경우 이 구조를 원하는 다른 사용 가능한 소스로 채울 수 있습니다.
- Dataflow: Google Ads와 같은 여러 마케팅 데이터 세트를 위한 통합 도구입니다.
- Meridian용 Cortex Framework:
- Colab Enterprise: 실행 중에 Colab Enterprise 노트북을 실행하고 다음 항목에 액세스할 수 있습니다.
- Cloud Storage의 노트북 및 구성 파일
- 관련 BigQuery 뷰 및 테이블 쿼리
- 결과를 Cloud Storage에 다시 쓰기
- 워크플로: 워크플로 및 Cloud Build를 실행하여 Colab Enterprise 노트북 실행을 트리거합니다.
Cloud Build 서비스 계정 만들기 및 구성
Cloud Build는 서비스 계정을 사용하여 사용자 대신 빌드를 실행합니다. 이 섹션에서는 Cortex Framework 배포를 위한 전용 서비스 계정을 만들고 Cloud Build 서비스 계정에 필요한 권한을 부여하는 방법을 안내합니다.
새 서비스 계정 만들기
보안 및 제어를 강화하기 위해 Cortex Framework 배포를 위한 전용 서비스 계정을 만듭니다. 새 서비스 계정을 만든 후에는
이
서비스 계정
을 배포 프로세스 중에 _BUILD_ACCOUNT 대체 매개변수를 사용하여 지정할 수 있습니다.
콘솔 또는 Google Cloud CLI를 사용하여 이 새 서비스 계정을 만듭니다. Google Cloud
콘솔
서비스 계정 페이지로 이동합니다.
나머지 단계는 Google Cloud 콘솔에 표시됩니다.
프로젝트를 선택합니다. Google Cloud
콘솔에 설명과 함께 서비스 계정 및 표시 이름을 입력합니다 . Google Cloud 콘솔에서 이 이름을 기반으로 서비스 계정 ID가 생성됩니다. Google Cloud 필요한 경우 ID를 수정합니다. 나중에 ID를 변경할 수는 없습니다. 서비스 계정에 다음 기본값을 사용합니다.
- 이름: "cortex-deployer".
- 설명: "Cortex Deployer 서비스 계정".
- 표시 이름: "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@SOURCE_PROJECT.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"다음을 바꿉니다.
SOURCE_PROJECT를 Cortex Framework Data Foundation 배포의 소스 프로젝트로 바꿉니다.USER_EMAIL을 실행 사용자 이메일로 바꿉니다.
새 서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기를 참조하세요.
권한 부여
Cloud Build 서비스 계정에는 소스 프로젝트 (별도의 프로젝트에 배포하는 경우 대상 프로젝트)에 특정 권한이 필요합니다. 콘솔 또는 Google Cloud CLI를 사용하여 다음 역할을 부여합니다. Google Cloud
- 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- Meridian용 Cortex 배포 시) - 스토리지 객체 사용자 (
roles/storage.objectUser- Meridian용 Cortex 배포 시) 워크플로 편집자 (
roles/workflows.editor- Meridian용 Cortex 배포 시)
콘솔
콘솔에서 IAM 페이지로 이동합니다. Google Cloud
소스 프로젝트를 선택합니다.
액세스 권한 부여 를 클릭합니다.
이전 단계의 기본 Cloud Build 서비스 계정을 새 주 구성원으로 추가합니다.
역할 선택 드롭다운 메뉴에서 Cloud Build 서비스 계정을 검색한 다음 Cloud Build 서비스 계정을 클릭합니다.
이전 단계를 반복하여 나머지 역할을 추가합니다.
- 서비스 계정 사용자
- BigQuery 데이터 편집자
- BigQuery 작업 사용자
- 로그 작성자
- Colab Enterprise 관리자 (Meridian용 Cortex 배포 시)
- 스토리지 객체 사용자 (Meridian용 Cortex 배포 시)
- 워크플로 편집자 (Meridian용 Cortex 배포 시)
저장 을 클릭합니다.
서비스 계정과 부여된 역할이 IAM 페이지에 나열되는지 확인합니다. IAM 역할을 부여했습니다.
gcloud
다음 명령어를 사용하여 Cloud Build 서비스 계정에 역할을 부여합니다.
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/cloudbuild.builds.builder"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/bigquery.dataEditor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/aiplatform.colabEnterpriseAdmin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/storage.objectUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/workflows.editor"
다음을 바꿉니다.
SOURCE_PROJECT를 소스 프로젝트 ID로 바꿉니다.CLOUD_BUILD_SA를 Cloud Build 서비스 계정으로 바꿉니다. 형식은 다음과 같습니다.CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.
자세한 내용은 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=SOURCE_PROJECT \
--description="Cortex for Meridian Colab Runner Service Account" \
--display-name="Cortex Meridian Runner"
다음을 바꿉니다.
SOURCE_PROJECT를 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 SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.dataViewer'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.jobUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.readSessionUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/cloudbuild.builds.editor'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.colabEnterpriseAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/logging.logWriter'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.notebookRuntimeAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/storage.admin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/storage.objectUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.colabServiceAgent'
다음을 바꿉니다.
SOURCE_PROJECT를 Meridian용 Cortex가 배포된 프로젝트 ID로 바꿉니다.cortex-meridian-colab-runner를 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://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGION다음을 바꿉니다.
COMPOSER_DAG_BUCKET을 새 버킷의 이름으로 바꿉니다.REGION/MULTI_REGION을 BigQuery 데이터 세트와 동일한 리전으로 바꿉니다.
다음 명령어를 사용하여 서비스 계정에
Storage Object Creator권한을 할당합니다.gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectCreator다음을 바꿉니다.
cortex-deployer를 Cloud Build 서비스 계정으로 바꿉니다.COMPOSER_DAG_BUCKET을 새 버킷의 이름으로 바꿉니다.
로그용 스토리지 버킷 만들기
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:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectAdmin다음을 바꿉니다.
cortex-deployer를 Cloud Build 기본 서비스 계정으로 바꿉니다.LOGS_BUCKET_NAME을 새 버킷의 이름으로 바꿉니다.
다음 단계
이 단계를 완료한 후 다음 배포 단계로 이동합니다.
- 워크로드를 설정합니다.
- 저장소를 클론합니다.
- 통합 메커니즘을 결정합니다.
- 구성요소를 설정합니다 (이 페이지).
- 배포를 구성합니다.
- 배포를 실행합니다.