Aurora PostgreSQL DB 클러스터의 논리적 복제 설정
논리적 복제를 설정하려면 rds_superuser
권한이 필요합니다. 다음 절차에 설명된 대로 필요한 파라미터를 설정하려면 사용자 지정 DB 클러스터 파라미터 그룹을 사용하도록 Aurora PostgreSQL DB 클러스터를 구성해야 합니다. 자세한 내용은 Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹 단원을 참조하십시오.
Aurora PostgreSQL DB 클러스터에 논리적 복제를 설정하는 방법
https://console.aws.amazon.com/rds/
에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Aurora PostgreSQL DB 클러스터를 선택합니다.
-
구성 탭을 엽니다. 인스턴스 세부 정보 중에서 유형이 DB 클러스터 파라미터 그룹인 파라미터 그룹 링크를 찾아보세요.
-
링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다.
-
파라미터 검색 필드에
rds
를 입력하여rds.logical_replication
파라미터를 찾습니다. 이 파라미터의 기본값은0
이며 기본적으로 꺼져 있음을 의미합니다. -
파라미터 편집을 선택하여 속성 값에 액세스한 다음 선택기에서 기능을 켜도록
1
을 선택합니다. 예상 사용량에 따라 다음 파라미터의 설정을 변경해야 할 수도 있습니다. 하지만 대부분의 경우 기본값이면 충분합니다.-
max_replication_slots
- 이 파라미터를 적어도 계획한 총 논리적 복제 게시 및 구독 수와 동일한 값으로 설정합니다. AWS DMS를 사용하는 경우 이 파라미터를 적어도 클러스터에서 계획한 변경 데이터 캡처 작업과 논리적 복제 게시 및 구독 수를 합친 값과 동일해야 합니다. -
max_wal_senders
및max_logical_replication_workers
- 이 파라미터를 적어도 활성화하려는 논리적 복제 슬롯 수 또는 변경 데이터 캡쳐를 위한 활성 AWS DMS 작업의 수와 동일한 값으로 설정합니다. 논리적 복제 슬롯을 비활성 상태로 두면 vacuum이 테이블에서 사용되지 않는 튜플을 제거할 수 없으므로 복제 슬롯을 모니터링하고 필요에 따라 비활성 슬롯을 제거하는 것이 좋습니다. -
max_worker_processes
- 이 파라미터를 적어도max_logical_replication_workers
,autovacuum_max_workers
및max_parallel_workers
값의 합계와 동일한 값으로 설정합니다. 소규모 DB 인스턴스 클래스에서는 백그라운드 작업자 프로세스 수가 애플리케이션 워크로드에 영향을 줄 수 있으므로max_worker_processes
를 기본값보다 높게 설정한 경우 데이터베이스 성능을 모니터링합니다. (기본값은GREATEST(${DBInstanceVCPU*2},8}
의 결과입니다. 즉, 기본적으로 DB 인스턴스 클래스에 해당하는 CPU의 2배 또는 8 중 더 큰 값입니다.)
참고
고객이 생성한 DB 파라미터 그룹의 파라미터 값은 수정할 수 있지만, 기본 DB 파라미터 그룹의 파라미터 값은 변경할 수 없습니다.
-
Save changes(변경 사항 저장)를 선택합니다.
Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 변경 사항이 적용되도록 합니다. Amazon RDS 콘솔에서 클러스터의 기본 DB 인스턴스를 선택하고 작업 메뉴에서 재부팅을 선택합니다.
인스턴스를 사용할 수 있게 되면 다음과 같이 논리적 복제가 활성화되어 있는지 확인할 수 있습니다.
psql
을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.psql --host=
your-db-cluster-instance-1
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
다음 명령을 사용하여 논리적 복제가 활성화되었는지 확인합니다.
labdb=>
SHOW rds.logical_replication;
rds.logical_replication ------------------------- on (1 row)
wal_level
이logical
로 설정되어 있는지 확인합니다.labdb=>
SHOW wal_level;
wal_level ----------- logical (1 row)
논리적 복제를 사용하여 데이터베이스 테이블을 원본 Aurora PostgreSQL DB 클러스터의 변경 사항과 동기화된 상태로 유지하는 예는 예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용 섹션을 참조하세요.