이 페이지에서는 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
역할을 부여합니다.
변경 데이터 캡처 파이프라인의 Cloud Storage 버킷이 Dataproc Metastore 서비스 프로젝트와 다른 프로젝트에 있는 경우 다음 단계를 따르세요.
- Datastream 서비스 에이전트에 버킷에 쓰는 데 필요한 권한이 있는지 확인하세요. 일반적으로 이러한 역할은
roles/storage.objectViewer
,roles/storage.objectCreator
,roles/storage.legacyBucketReader
입니다.
관리형 마이그레이션 기본 요건
Dataproc Metastore는 프록시 및 변경 데이터 캡처 파이프라인을 사용하여 데이터 전송을 지원합니다. 전송을 시작하기 전에 이러한 기능이 어떻게 작동하는지 이해하는 것이 중요합니다.
핵심 용어
- 서비스 프로젝트: 서비스 프로젝트는 Dataproc Metastore 서비스를 만든 Google Cloud 프로젝트입니다.
- 호스트 프로젝트: 호스트 프로젝트는 공유 VPC 네트워크를 보유하는 Google Cloud 프로젝트입니다. 이러한 공유 네트워크를 사용하기 위해 하나 이상의 서비스 프로젝트를 호스트 프로젝트에 연결할 수 있습니다. 자세한 내용은 공유 VPC를 참고하세요.
- 서비스 프로젝트에서 Datastream API를 사용 설정합니다.
서비스 프로젝트의 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"
다음 방화벽 규칙을 추가합니다.
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에 대한 자세한 내용은 서비스 프로젝트 관리자를 참고하세요.
호스트 프로젝트의 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"
호스트 프로젝트의 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 사전 요구사항에 나열된 권한이 있는 커스텀 역할을 만드세요.
이러한 권한은 호스트 프로젝트의 VPC 네트워크와 Datastream 간에 피어링을 설정하기 위해 이전 시작 시 필요합니다.
이 역할은 이전이 시작되는 즉시 삭제할 수 있습니다. 이전이 완료되기 전에 역할을 삭제하면 Dataproc Metastore에서 피어링 작업을 정리할 수 없습니다. 이 경우 직접 작업을 정리해야 합니다.