

# Aurora PostgreSQL DB 클러스터의 논리적 복제 설정
<a name="AuroraPostgreSQL.Replication.Logical.Configure"></a>

논리적 복제를 설정하려면 `rds_superuser` 권한이 필요합니다. 다음 절차에 설명된 대로 필요한 파라미터를 설정하려면 사용자 지정 DB 클러스터 파라미터 그룹을 사용하도록 Aurora PostgreSQL DB 클러스터를 구성해야 합니다. 자세한 내용은 [Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요.

**Aurora PostgreSQL DB 클러스터에 논리적 복제를 설정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터를 선택합니다.

1. **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **유형**이 **DB 클러스터 파라미터 그룹**인 **파라미터 그룹** 링크를 찾아보세요.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다.

1. **파라미터** 검색 필드에 `rds`를 입력하여 `rds.logical_replication` 파라미터를 찾습니다. 이 파라미터의 기본값은 `0`이며 기본적으로 꺼져 있음을 의미합니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스한 다음 선택기에서 기능을 켜도록 `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 파라미터 그룹의 파라미터 값은 변경할 수 없습니다.

1. **변경 사항 저장**을 선택합니다.

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 변경 사항이 적용되도록 합니다. Amazon RDS 콘솔에서 클러스터의 기본 DB 인스턴스를 선택하고 **작업** 메뉴에서 **재부팅**을 선택합니다.

1. 인스턴스를 사용할 수 있게 되면 다음과 같이 논리적 복제가 활성화되어 있는지 확인할 수 있습니다.

   1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

      ```
      psql --host=your-db-cluster-instance-1.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
      ```

   1. 다음 명령을 사용하여 논리적 복제가 활성화되었는지 확인합니다.

      ```
      labdb=> SHOW rds.logical_replication;
       rds.logical_replication
      -------------------------
       on
      (1 row)
      ```

   1. `wal_level`이 `logical`로 설정되어 있는지 확인합니다.

      ```
      labdb=> SHOW wal_level;
        wal_level
      -----------
       logical
      (1 row)
      ```

논리적 복제를 사용하여 데이터베이스 테이블을 원본 Aurora PostgreSQL DB 클러스터의 변경 사항과 동기화된 상태로 유지하는 예는 [예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용](AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example.md) 섹션을 참조하세요.