이 페이지에서는 PostgreSQL용 AlloyDB에서 직접 만든 기존 PostgreSQL용 AlloyDB 클러스터로 데이터베이스를 마이그레이션하는 방법을 설명합니다.
이 경로는 대상 클러스터가 다른 팀에서 관리되거나 특정 커스텀 플래그, 사전 할당된 IP 범위 또는 복잡한 VPC 네트워크 토폴로지를 구성하기 위해 Database Migration Service 외부에서 클러스터를 만들어야 하는 시나리오에 유용합니다. 마이그레이션에 다른 요구사항이 있는 경우 다른 마이그레이션 흐름을 따르는 것이 좋습니다. 자세한 내용은 PostgreSQL에서 PostgreSQL용 AlloyDB로 마이그레이션 시작하기를 참조하세요.
개략적으로 연속 마이그레이션은 다음 단계를 따릅니다.
- Database Migration Service에서 데이터를 복제할 수 있도록 소스 데이터베이스를 구성합니다.
- 소스 데이터베이스와 Google Cloud간의 네트워크 연결을 설정합니다.
- 기존 PostgreSQL용 AlloyDB 대상 클러스터를 준비하고 구성합니다.
- 소스 연결 프로필과 연속 마이그레이션 작업을 만듭니다.
- 연속 마이그레이션 작업을 시작하고 모니터링합니다.
- 마이그레이션 작업을 승격하고 새 데이터베이스를 사용하도록 애플리케이션을 이동합니다.
비용
이 문서에서는 비용이 청구될 수 있는Google Cloud구성요소를 사용합니다.
- PostgreSQL용 AlloyDB( PostgreSQL용 AlloyDB 가격 책정 참조)
- 고객 관리 암호화 키 (CMEK)를 저장하는 데 사용되는 경우: Cloud Storage( Cloud Storage 가격 책정 참조)
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
시작하기 전에
- 이 마이그레이션 경로가 시나리오를 완전히 지원할 수 있는지 확인합니다.
다음 페이지를 참고하세요.
- 시나리오 개요 페이지의 지원되는 소스 및 대상에는 지원되는 모든 소스 및 대상 버전이 나열되어 있습니다.
- 알려진 제한사항에서는 운영 경계, 지원되는 데이터 유형, 성능 한도를 설명합니다. PostgreSQL용 AlloyDB를 위한 Database Migration Service는 지속적 마이그레이션을 지원합니다.
- 대상 클러스터를 만들 리전을 고려합니다. Database Migration Service는 완전한 리전 제품입니다. 즉, 마이그레이션과 관련된 모든 항목 (소스 연결 프로필, 마이그레이션 작업, 대상 클러스터)이 단일 Google Cloud 리전에 있어야 합니다.
- Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
- Database Migration Service, PostgreSQL용 AlloyDB, Compute Engine API를 사용 설정합니다.
필요한 역할
Database Migration Service를 사용하여 PostgreSQL용 AlloyDB로 동종 PostgreSQL 마이그레이션을 수행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 필수 IAM 역할을 부여해 달라고 요청하세요.
-
데이터베이스 마이그레이션 관리자 (
roles/datamigration.admin) -
AlloyDB 관리자 (
roles/alloydb.admin)
역할 부여에 대한 자세한 내용은 Identity and Access Management 문서의 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 Database Migration Service를 사용하여 동종 PostgreSQL 마이그레이션을 수행하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
Database Migration Service를 사용하여 기존 PostgreSQL용 AlloyDB 클러스터로 동종 PostgreSQL 마이그레이션을 수행하려면 다음 권한이 필요합니다.
datamigration.*alloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.update
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
소스 데이터베이스 준비
마이그레이션을 위해 소스 데이터베이스를 준비하려면 다음 단계를 따르세요.
- 소스 네트워크 연결 방법을 선택하고 구성합니다.
- 소스 데이터베이스 인스턴스를 구성합니다. 대략적으로 이 과정에는 다음 단계가 포함됩니다.
- 소스 데이터베이스와 마이그레이션할 모든 데이터베이스에
pglogicalPostgreSQL 확장 프로그램 (버전 2.2.1 이상)을 설치합니다. - PostgreSQL 매개변수 구성:
wal_level = logical을 설정하고max_replication_slots,max_wal_senders,max_worker_processes에 적절한 값을 설정합니다. - 마이그레이션 사용자에게 복제 권한을 부여하고 대상 PostgreSQL용 AlloyDB 클러스터에서 들어오는 연결을 허용하도록
pg_hba.conf를 구성합니다.
자세한 내용은 소스 데이터베이스 구성을 참조하세요.
- 소스 데이터베이스와 마이그레이션할 모든 데이터베이스에
- 소스 연결 프로필을 만듭니다.
대상 클러스터 준비 및 구성
기존 PostgreSQL용 AlloyDB 클러스터 (예: 다른 팀에서 사전 프로비저닝하거나 Terraform으로 관리하는 클러스터)로 마이그레이션할 때는 마이그레이션 작업을 만들기 전에 클러스터가 모든 Database Migration Service 기본 요건을 충족하는지 확인하세요.
- 클러스터 준비 상태 및 데이터 상태:
- 대상 클러스터는
RUNNABLE상태여야 하며 활성 기본 인스턴스가 있어야 합니다. - 클러스터는 마이그레이션 작업 및 연결 프로필과 동일한 Google Cloud 리전에 있어야 합니다.
- 클러스터는 한 번에 하나의 활성 마이그레이션 작업에만 연결할 수 있습니다.
- 대상 클러스터에는 사용자 테이블이 없는 기본 시스템 데이터베이스 (
postgres,template0,template1)만 포함되어야 합니다.
- 대상 클러스터는
- 데이터베이스 플래그 구성: 대상 PostgreSQL용 AlloyDB 클러스터에서
alloydb.enable_pglogical플래그를 사용 설정합니다. 이 플래그는 논리적 복제 디코딩 및 수집에 필요합니다. 플래그 업데이트에 대한 안내는 PostgreSQL용 AlloyDB 문서의 데이터베이스 플래그 구성을 참조하세요. - 데이터베이스 사용자 인증 정보 및 권한: 관리 권한 사용자 계정
postgres(또는alloydbsuperuser역할이 부여된 전용 마이그레이션 계정)가 대상 클러스터에 있는지 확인합니다. Database Migration Service는 복제 구독자를 관리하고 스키마를 동기화할 수 있는 관리 권한으로 대상에 연결합니다. - 네트워크 연결 요구사항: 선택한 연결 방법에 따라 대상 클러스터의 네트워킹이 소스 데이터베이스와 통신하도록 올바르게 구성되었는지 확인합니다.
- Private Service Connect: 대상 클러스터가 Private Service Connect를 사용하는 경우 클러스터가 적절한 Private Service Connect 네트워크 연결 및 라우팅으로 구성되어 소스 네트워크에 도달하는지 확인합니다. 자세한 내용은 PostgreSQL용 AlloyDB 문서의 Private Service Connect 구성을 참조하세요.
- Virtual Private Cloud 피어링 (비공개 서비스 액세스/비공개 IP): 대상 클러스터에는 소스 데이터베이스와 피어링하거나 소스 데이터베이스로 라우팅하는 Virtual Private Cloud 네트워크에 비공개 서비스 액세스가 구성되어 있어야 합니다(예: Cloud VPN 또는 Cloud Interconnect 사용). 자세한 내용은 PostgreSQL용 AlloyDB 문서의 비공개 서비스 액세스 구성을 참조하세요.
- 공개 IP 허용 목록: 공개 인터넷을 통해 소스 데이터베이스에 액세스할 수 있는 경우 소스 방화벽이 대상 PostgreSQL용 AlloyDB 기본 인스턴스의 발신 IP 주소에서 수신되는 연결을 허용하는지 확인합니다.
- 역방향 SSH 터널 또는 TCP 프록시 VM: 소스 데이터베이스가 직접 비공개 피어링 없이 Google Cloud 외부에 있는 경우 중간 Compute Engine VM (배스천 호스트 또는 TCP 프록시)이 대상 클러스터의 가상 프라이빗 클라우드 네트워크에서 연결할 수 있는 서브넷에 배포되어 있는지 확인합니다. 자세한 내용은 네트워킹 방법을 참조하세요.
- 기본 인스턴스 강등 및 쓰기 잠금 알림:
- Database Migration Service는 마이그레이션 프로세스 중에 외부 복제 구독자로 작동하도록 기존 대상 기본 인스턴스를 강등합니다. Google Cloud 콘솔에서 마이그레이션 작업을 구성할 때 대상 클러스터 ID를 입력하여 이 강등을 확인해야 합니다.
- 기본 인스턴스를 강등해도 데이터베이스가 엄격한 읽기 전용 모드로 전환되지는 않지만, 복제 충돌과 데이터 드리프트를 방지하려면 마이그레이션에 참여하는 테이블이나 데이터베이스에서 쓰기 작업을 피해야 합니다. 자세한 내용은 기존 대상 클러스터로의 마이그레이션 제한사항을 참조하세요.
마이그레이션 작업 만들기 및 실행
기존 대상 클러스터로의 지속적 마이그레이션을 구성하고 실행하려면 다음 단계를 수행합니다.
- 선택사항: 마이그레이션 작업에 자체 인증서 또는 암호화 키를 관리하려면 필요한 암호화 키를 준비합니다.
-
기존 대상 클러스터의 마이그레이션 작업을 만들고 실행합니다.
Database Migration Service 관측 가능성 기능을 사용하여 마이그레이션 진행 상황과 대상 클러스터 상태를 모니터링할 수 있습니다. 마이그레이션 작업 측정항목을 참조하세요.
마이그레이션 완료
애플리케이션 트래픽을 새 PostgreSQL용 AlloyDB 클러스터로 전환하기로 결정한 경우 다음 단계에 따라 마이그레이션을 완료합니다.
- 소스 데이터베이스에서 모든 쓰기 작업을 중지합니다. 소스 데이터베이스를 읽기 전용 모드로 구성하여 쿼리의 가용성을 유지하면서 새로운 수정을 방지할 수 있습니다.
- 마이그레이션 작업 승격 마이그레이션 작업을 승격하면 나머지 모든 CDC 트랜잭션이 동기화되고, 소스에서 복제가 종료되며, PostgreSQL용 AlloyDB 기본 인스턴스가 완전히 작동하는 독립형 기본 클러스터로 승격됩니다.
- 선택사항: 완전성과 행 무결성을 위해 마이그레이션 데이터를 확인합니다.
다음 단계
PostgreSQL용 AlloyDB 기능 및 관리 기능에 대해 자세히 알아보세요. PostgreSQL용 AlloyDB 개요를 참조하세요.