지원되는 Postgres 버전
논리적 복제 활성화
rds.logical_replication = 1
- 필요한 설정이 포함된, 사용 중인 Aurora PostgreSQL 버전에 맞는 새 파라미터 그룹을 생성합니다:
rds.logical_replication을 1로 설정합니다
- 새 파라미터 그룹을 Aurora PostgreSQL 클러스터에 적용합니다
- 변경 사항을 적용하기 위해 Aurora 클러스터를 재부팅합니다
데이터베이스 사용자 구성
-
ClickPipes 전용 사용자를 생성합니다:
-
이전 단계에서 생성한 사용자에게 스키마 수준의 읽기 전용 권한을 부여합니다. 다음 예시는
public스키마에 대한 권한을 보여줍니다. 복제할 테이블이 포함된 각 스키마에 대해 이 명령을 반복하십시오: -
사용자에게 복제 권한을 부여합니다:
- 복제할 테이블을 포함하는 publication을 생성합니다. 성능 오버헤드를 피하려면 publication에는 꼭 필요한 테이블만 포함할 것을 강력히 권장합니다.
-
특정 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
clickpipes publication에는 지정된 테이블에서 생성된 변경 이벤트 집합이 포함되며, 이후 복제 스트림을 수집하는 데 사용됩니다.
네트워크 액세스 설정
IP 기반 접근 제어
Inbound rules에 추가하십시오.
AWS PrivateLink를 통한 프라이빗 액세스
Aurora 관련 고려 사항
- 연결 엔드포인트: 논리적 복제에서는 replication slot을 생성하려면 쓰기 권한이 필요하며 프라이머리 인스턴스에 연결해야 하므로, 항상 Aurora 클러스터의 writer 엔드포인트에 연결하십시오.
- 장애 조치 처리: 장애 조치가 발생하면 Aurora는 reader를 새 writer로 자동 승격합니다. ClickPipes는 연결이 끊어진 것을 감지하고 writer 엔드포인트에 다시 연결을 시도하며, 이 엔드포인트는 이제 새 프라이머리 인스턴스를 가리키게 됩니다.
- Global Database: Aurora Global Database를 사용하는 경우, 리전 간 복제가 이미 리전 간 데이터 이동을 처리하므로 프라이머리 리전의 writer 엔드포인트에 연결해야 합니다.
- 스토리지 관련 고려 사항: Aurora의 스토리지 계층은 클러스터의 모든 인스턴스에서 공유되므로, 표준 RDS보다 논리적 복제 성능이 더 좋을 수 있습니다.
동적 클러스터 엔드포인트 처리하기
- 고가용성 구성에서는 애플리케이션이 Aurora writer 엔드포인트를 사용하도록 구성하세요. 이 엔드포인트는 현재 프라이머리 인스턴스를 자동으로 가리킵니다.
- 리전 간 복제를 사용하는 경우, 지연 시간을 줄이고 장애 허용을 높이기 위해 각 리전별로 별도의 ClickPipes를 설정하는 것을 고려하세요.