지원되는 Postgres 버전
논리적 복제 활성화
rds.logical_replication = 1
- 필요한 설정이 포함된, 사용 중인 Postgres 버전에 맞는 새 파라미터 그룹을 생성합니다.
rds.logical_replication을 1로 설정합니다
- 새 파라미터 그룹을 RDS Postgres 데이터베이스에 적용합니다
- 변경 사항을 적용하려면 RDS 인스턴스를 재부팅합니다
데이터베이스 사용자 구성
-
ClickPipes 전용 사용자를 생성합니다:
-
이전 단계에서 생성한 사용자에게 스키마(schema) 수준의 읽기 전용 액세스 권한을 부여합니다. 다음 예시는
public스키마에 대한 권한을 보여줍니다. 복제하려는 테이블이 포함된 각 스키마에 대해 이 명령을 반복하십시오: -
사용자에게 복제 권한을 부여합니다:
- 복제하려는 테이블을 포함하는 publication을 생성합니다. 성능 오버헤드를 피하려면 publication에는 필요한 테이블만 포함하는 것을 강력히 권장합니다.
-
특정 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
-
특정 스키마의 모든 테이블에 대한 publication을 생성하려면:
clickpipes publication은 변경 이벤트가 ClickPipes로 스트리밍될 테이블 집합을 정의합니다. 모든 테이블을 복제하려는 경우가 아니라면 FOR ALL TABLES 사용은 권장하지 않습니다. 불필요한 테이블을 포함하면 Postgres에서 ClickPipes로 전송되는 WAL 트래픽이 증가하고 전체 복제 효율이 저하되기 때문입니다.
IAM authentication 사용(선택 사항)
복제에 IAM authentication을 사용하려면
rds.iam_auth_for_replication 매개변수를 1로 설정해야 합니다. 이 기능은 PostgreSQL 11 버전부터 지원되며, 그보다 이전 버전에서는 Initial Load Only ClickPipes만 실행할 수 있습니다.네트워크 액세스 설정
IP 기반 액세스 제어
인바운드 규칙에 추가하십시오.
AWS PrivateLink를 통한 비공개 액세스
RDS Proxy 우회 방안
- cron 작업을 사용해 RDS endpoint의 IP를 주기적으로 확인하고, 변경된 경우 NLB를 업데이트합니다.
- EventBridge/SNS와 함께 RDS Event Notifications 사용: AWS RDS 이벤트 알림을 사용해 업데이트가 자동으로 수행되도록 트리거합니다.
- 고정 EC2: EC2 인스턴스를 배포해 폴링 서비스 또는 IP 기반 프록시 역할을 하도록 구성합니다.
- Terraform 또는 CloudFormation 같은 도구를 사용해 IP 주소 관리를 자동화합니다.