4단계: 구성요소 설정

이 페이지에서는 Cortex Framework의 핵심인 Cortex Framework Data Foundation을 배포하는 네 번째 단계를 설명합니다. 이 단계에서는 배포할 필수Google Cloud 서비스를 설정합니다.

이 섹션에서는Google Cloud 프로젝트에서 다음 Google Cloud 서비스를 사용 설정합니다.

  • BigQuery 인스턴스 및 데이터 세트
  • Cloud Build API
  • Cloud Storage 버킷
  • 서비스 계정 (선택사항)
  • Cloud Resource Manager API

Cloud Shell을 사용하여 다음 Google Cloud 서비스를 사용 설정합니다.

  1. 다음 명령어를 복사하여 붙여넣습니다.

    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
    

    SOURCE_PROJECT를 소스 프로젝트 ID로 바꿉니다.

  2. 성공 메시지가 표시되면 Google Cloud 서비스가 사용 설정되어 있는지 확인합니다.

선택사항.Google Cloud 프로젝트에서 다음 Google Cloud 서비스를 사용 설정할 수 있습니다.

  • 방향성 비순환 그래프 (DAG)를 통한 변경 데이터 캡처 (CDC) 처리, 계층 구조 평탄화 (SAP만 해당), 데이터 복제(SAP 이외만 해당)를 위한 Cloud Composer 인스턴스를 설정하려면 Cloud Composer 문서를 참고하세요.
  • 보고 템플릿에 연결하는 Looker
  • Analytics Hub 연결된 데이터 세트는 날씨 DAG와 같은 일부 외부 소스에 사용됩니다. 고급 시나리오에 사용할 수 있는 다른 소스로 이 구조를 채울 수 있습니다.
  • Dataflow: Google Ads와 같은 여러 마케팅 데이터 세트를 위한 통합 도구입니다.
  • Dataplex: 데이터 메시를 빌드하는 데 사용됩니다. 자세한 내용은 데이터 메시 사용자 가이드를 참고하세요.

실행 사용자에게 권한 부여

Cloud Build가 트리거된 프로젝트에서 배포를 실행하려면 실행하는 사용자에게 다음 권한을 부여합니다.

  • 서비스 사용량 소비자
  • Cloud Build 기본 버킷 또는 로그 버킷의 스토리지 객체 뷰어
  • 출력 버킷의 객체 작성기
  • Cloud Build 편집자
  • 프로젝트 뷰어 또는 스토리지 객체 뷰어

이러한 권한을 부여하는 방법에 관한 자세한 내용은 다음 문서를 참고하세요.

Cloud Build 계정 구성

Cloud Build는 서비스 계정을 사용하여 사용자 대신 빌드를 실행합니다. 다음 단계에 따라 Cortex Framework를 배포할 수 있는 권한을 Cloud Build 서비스 계정에 부여합니다.

Cortex Framework를 배포할 수 있는 권한을 Cloud Build 서비스 계정에 부여하려면 다음 명령어를 사용하세요.

  1. Cloud Shell을 열고 다음 명령어를 실행하여 기본 Cloud Build 서비스 계정을 찾습니다.

    gcloud builds get-default-service-account --project PROJECT_ID
    
  2. 다음과 같은 형식의 응답을 수신합니다.

    # Response one
    `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com`
    # Response two
    `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER@cloudbuild.gserviceaccount.com`
    

    응답에서 PROJECT_NUMBER가 프로젝트 번호로 대체됩니다. 이전 서비스 계정 이메일 중 하나가 기본 Cloud Build 서비스 계정입니다.

  3. IAM에서 @developer.gserviceaccount.com 계정 또는 @cloudbuild.gserviceaccount.com 계정을 확인하여 이 서비스 계정을 식별합니다.

  4. 콘솔 또는 Google Cloud CLI를 통해 소스 프로젝트의 Cloud Build 서비스 계정 (별도의 타겟에 배포하는 경우 타겟 프로젝트에도 적용)에 다음 권한을 부여합니다.

    • Cloud Build 서비스 계정 (roles/cloudbuild.builds.builder)
    • 서비스 계정 사용자(roles/iam.serviceAccountUser)
    • BigQuery 데이터 편집자(roles/bigquery.dataEditor)
    • BigQuery 작업 사용자(roles/bigquery.jobUser)

    콘솔gcloud
    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동

    2. 소스 프로젝트를 선택합니다.

    3. 액세스 권한 부여를 클릭합니다.

    4. 이전 단계의 기본 Cloud Build 서비스 계정을 새 주 구성원으로 추가합니다.

    5. 역할 선택 드롭다운 메뉴에서 Cloud Build 서비스 계정을 검색한 다음 Cloud Build 서비스 계정을 클릭합니다.

    6. 이전 단계를 반복하여 나머지 권한인 서비스 계정 사용자, BigQuery 데이터 편집자, BigQuery 작업 사용자를 추가합니다.

    7. 저장을 클릭합니다.

    8. 서비스 계정과 해당 역할이 IAM 페이지에 나열되는지 확인합니다. IAM 역할을 부여했습니다.

    다음 명령어를 사용하여 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"
    

    명령어의 자리 표시자 값을 다음으로 바꿉니다.

    • SOURCE_PROJECT를 소스 프로젝트 ID로 바꿉니다.
    • CLOUD_BUILD_SA를 Cloud Build 기본 서비스 계정으로 바꿉니다.

    자세한 내용은 IAM 페이지를 사용하여 Cloud Build 서비스 계정에 역할 부여버킷에 IAM 정책 설정 및 관리를 참고하세요.

선택적 단계

배포를 더 효과적으로 맞춤설정하려면 다음의 선택적 단계를 따르세요.

스토리지 버킷은 처리 DAG 스크립트와 배포 중에 생성된 기타 임시 파일을 저장하는 데 필요합니다. 이러한 스크립트는 배포 후 Cloud Composer 또는 Apache Airflow 인스턴스로 수동으로 이동해야 합니다.

다음 단계에 따라 Google Cloud CLI 또는 Google Cloud 콘솔에서 스토리지 버킷을 만들 수 있습니다.

콘솔gcloud
  1. Cloud Storage로 이동합니다.

    Cloud Storage

  2. BigQuery 데이터 세트와 동일한 리전에 버킷을 만듭니다.

  3. 만든 버킷을 선택합니다.

  4. Permissions 탭으로 이동합니다.

  5. 빌드 명령어를 실행하는 사용자 ID 또는 만든 서비스 계정Storage Object Creator 권한을 부여합니다. 자세한 내용은 버킷에 새 조건 설정: 콘솔을 참고하세요.

  1. 다음 명령어를 사용하여 Cloud Shell에서 버킷을 만듭니다.

    gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
    

    다음을 바꿉니다.

    • DAG_BUCKET_NAME을 새 버킷 이름으로 바꿉니다.
    • REGION/MULTI_REGION을 BigQuery 데이터 세트와 동일한 리전으로 바꿉니다.
  2. 다음 명령어를 사용하여 서비스 계정에 Storage Object Creator 권한을 할당합니다.

    gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectCreator gs://DAG_BUCKET_NAME
    

    다음을 바꿉니다.

    • CLOUD_BUILD_SA를 Cloud Build 기본 서비스 계정으로 바꿉니다.
    • DAG_BUCKET_NAME을 새 버킷 이름으로 바꿉니다.

로그용 스토리지 버킷 만들기

Cloud Build 프로세스가 로그를 저장할 특정 버킷을 만들 수 있습니다. 이는 로그에 저장될 수 있는 데이터를 특정 리전으로 제한하려는 경우에 유용합니다. Google Cloud CLI 또는 Google Cloud 콘솔에서 로그의 스토리지 버킷을 만들 수 있습니다.

콘솔gcloud

로그의 특정 버킷을 만들려면 다음 단계를 따르세요.

  1. Cloud Storage로 이동합니다.

    Cloud Storage

  2. 배포가 실행될 리전에 버킷을 만듭니다.

  3. 만든 버킷을 선택합니다.

  4. Permissions 탭으로 이동합니다.

  5. 빌드 명령어를 실행하는 사용자 ID 또는 만든 서비스 계정Storage Object Admin 권한을 부여합니다. 자세한 내용은 버킷에 새 조건 설정: 콘솔을 참고하세요.

로그의 특정 버킷을 만들려면 다음 명령어를 사용합니다.

  1. Cloud Shell에서 다음 명령어를 사용하여 버킷을 만듭니다.

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    다음을 바꿉니다.

    • REGION/MULTI_REGION을 선택한 리전으로 바꾸어 버킷을 만듭니다.
    • LOGS_BUCKET_NAME을 새 버킷 이름으로 바꿉니다.
  2. 다음 명령어를 사용하여 서비스 계정에 Storage Object Admin 권한을 할당합니다.

    gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectAdmin gs://LOGS_BUCKET_NAME
    

    다음을 바꿉니다.

    • CLOUD_BUILD_SA를 Cloud Build 기본 서비스 계정으로 바꿉니다.
    • LOGS_BUCKET_NAME을 새 버킷 이름으로 바꿉니다.

다음 단계

이 단계를 완료한 후 다음 배포 단계로 이동합니다.

  1. 워크로드 설정
  2. 저장소 클론
  3. 통합 메커니즘 결정
  4. 구성요소 설정 (이 페이지)
  5. 배포 구성
  6. 배포 실행