관리형 마이그레이션 기본 요건

이 페이지에서는 Dataproc Metastore 관리형 마이그레이션을 준비하기 위해 Google Cloud 프로젝트를 설정하는 방법을 보여줍니다.

시작하기 전에

  • 관리형 마이그레이션의 작동 방식을 이해합니다.

  • 다음 서비스를 설정하거나 이에 대한 액세스 권한을 얻습니다.

    • Spanner 데이터베이스 유형으로 구성된 Dataproc Metastore입니다.
    • 비공개 IP로 구성된 MySQL용 Cloud SQL 데이터베이스 인스턴스입니다. Cloud SQL 인스턴스의 경우 다음을 확인합니다.

      • Cloud SQL 인스턴스가 필수 서브넷을 사용하는 VPC 네트워크로 구성됩니다.

      • Cloud SQL 인스턴스가 Dataproc Metastore 서비스(데이터를 복사하는 위치)에서 실행되는 Hive Metastore 버전과 호환되는 데이터베이스 스키마를 사용합니다.

      • Cloud SQL 인스턴스에는 Datastream과 Dataproc Metastore, Dataproc Metastore 및 Cloud SQL 간의 연결을 설정하기에 적절한 사용자가 포함되어 있습니다.

필요한 역할

Dataproc Metastore를 만들고 관리형 마이그레이션을 시작하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • IAM 권한 설정을 포함하여 모든 Dataproc Metastore 리소스에 대해 전체 액세스 권한을 부여하려는 경우: Dataproc Metastore 사용자 계정 또는 서비스 계정에 대한 Dataproc Metastore 관리자(roles/metastore.admin) 역할
  • Dataproc Metastore 리소스에 대해 전체 제어 권한을 부여하려는 경우: Dataproc Metastore 사용자 계정 또는 서비스 계정에 대한 Dataproc Metastore 편집자(roles/metastore.editor) 역할
  • 마이그레이션을 시작할 수 있는 권한을 부여하려는 경우: 서비스 프로젝트의 Dataproc Metastore 서비스 에이전트에 대한 마이그레이션 관리자(roles/metastore.migrationAdmin) 역할

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

프로젝트 설정에 따라 추가 역할 부여

프로젝트 구성 방법에 따라 다음과 같은 역할을 추가해야 할 수 있습니다. 적절한 계정에 이러한 역할을 부여하는 방법의 예시는 이 페이지의 뒷부분에 있는 기본 요건 섹션에 나와 있습니다.

  • 서비스 프로젝트의 Dataproc Metastore 서비스 에이전트[Google API 서비스 에이전트]에 네트워크 사용자(roles/compute.networkUser) 역할을 부여합니다.
  • 호스트 프로젝트의 Datastream 서비스 에이전트에 네트워크 관리자 (roles/compute.networkAdmin) 역할을 부여합니다.

Cloud SQL 인스턴스가 Dataproc Metastore 서비스 프로젝트와 다른 프로젝트에 있는 경우 다음을 수행합니다.

  • Cloud SQL 인스턴스 프로젝트의 Dataproc Metastore 서비스 에이전트에 roles/cloudsql.client 역할 및 roles/cloudsql.instanceUser 역할을 부여합니다.

Change-Data-Capture 파이프라인의 Cloud Storage 버킷이 Dataproc Metastore 서비스 프로젝트와 다른 프로젝트에 있는 경우:

  • Datastream 서비스 에이전트에 버킷에 쓰는 데 필요한 권한이 있는지 확인합니다. 일반적으로 roles/storage.objectViewer, roles/storage.objectCreator, roles/storage.legacyBucketReader 역할입니다.

관리형 마이그레이션 기본 요건

Dataproc Metastore는 프록시 및 변경 데이터 캡처 파이프라인을 사용하여 데이터 전송을 용이하게 합니다. 이전을 시작하기 전에 어떻게 작동하는지 이해하는 것이 중요합니다.

핵심 용어

  • 서비스 프로젝트: 서비스 프로젝트는 Dataproc Metastore 서비스를 만든 Google Cloud 프로젝트입니다.
  • 호스트 프로젝트: 호스트 프로젝트는 공유 VPC 네트워크를 보유한 Google Cloud 프로젝트입니다. 이러한 공유 네트워크를 사용하기 위해 하나 이상의 서비스 프로젝트를 호스트 프로젝트에 연결할 수 있습니다. 자세한 내용은 공유 VPC를 참조하세요.
  1. 서비스 프로젝트에서 Datastream API를 사용 설정합니다.
  2. 서비스 프로젝트의 Dataproc Metastore 서비스 에이전트에 roles/metastore.migrationAdmin 역할을 부여합니다.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. 다음 방화벽 규칙을 추가합니다.

    Dataproc Metastore와 비공개 IP Cloud SQL 인스턴스 사이의 연결을 설정합니다.

    • 상태 점검 프로브 프로브에서 SOCKS5 프록시의 네트워크 부하 분산기로의 트래픽을 허용하는 방화벽 규칙. 예를 들면 다음과 같습니다.

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
      

      포트 1080은 SOCKS5 프록시 서버가 실행되는 위치입니다.

    • 부하 분산기에서 SOCKS5 프록시 MIG로 트래픽을 허용하는 방화벽 규칙. 예를 들면 다음과 같습니다.

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • Private Service Connect 서비스 연결에서 부하 분산기로의 트래픽을 허용하는 방화벽 규칙. 예를 들면 다음과 같습니다.

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    Datastream이 /29 CIDR IP 범위를 사용하여 비공개 IP 연결을 만들 수 있도록 허용하는 방화벽 규칙. 예를 들면 다음과 같습니다.

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

(선택사항) 공유 VPC에 역할 추가

공유 VPC를 사용하는 경우 다음 단계를 수행합니다.

공유 VPC에 대한 자세한 내용은 서비스 프로젝트 관리자를 참조하세요.

  1. 호스트 프로젝트의 Dataproc Metastore 서비스 에이전트 및 Google API 서비스 에이전트에 roles/compute.networkUser 역할을 부여합니다.

    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
    
  2. 호스트 프로젝트의 Datastream 서비스 에이전트에 roles/compute.networkAdmin 역할을 부여합니다.

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

roles/compute.networkAdmin 역할을 부여할 수 없으면 공유 VPC 기본 요건에 나열된 권한으로 커스텀 역할을 만듭니다.

  • 이러한 권한은 Datastream을 사용하여 호스트 프로젝트의 VPC 네트워크 간 피어링을 설정하기 위해 마이그레이션 시작 시 필요합니다.

  • 이 역할은 마이그레이션이 시작되는 즉시 삭제할 수 있습니다. 마이그레이션이 완료되기 전에 역할을 삭제하면 Dataproc Metastore가 피어링 작업을 삭제할 수 없습니다. 이 경우 작업을 직접 삭제해야 합니다.

다음 단계