

# pglogical 확장 설정
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup"></a>

 Aurora PostgreSQL DB 클러스터에 `pglogical` 확장을 설정하려면 Aurora PostgreSQL DB 클러스터용 사용자 지정 DB 클러스터 파라미터 그룹의 공유 라이브러리에 `pglogical`을 추가해야 합니다. 논리적 디코딩을 켜려면 `rds.logical_replication` 파라미터의 값을 `1`로 설정해야 합니다. 마지막으로, 데이터베이스에서 확장을 만듭니다. 이러한 작업에는 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

이러한 작업을 수행하려면 `rds_superuser` 역할의 권한이 있어야 합니다.

다음 단계에서는 사용자의 Aurora PostgreSQL DB 클러스터 가 사용자 지정 DB 클러스터 파라미터 그룹에 연결되어 있다고 가정합니다. 사용자 지정 DB 클러스터 파라미터 그룹을 만드는 방법에 관한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

## 콘솔
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.CON"></a>

**pglogical 확장 설정 방법**

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

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

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

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

1. **파라미터** 검색 필드에 `shared_pre`를 입력하여 `shared_preload_libraries` 파라미터를 찾습니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스합니다.

1. **값** 필드의 목록에 `pglogical`를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다.  
![\[pglogical이 추가된 shared_preload_libraries 파라미터 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg_rpg_shared_preload_pglogical.png)

1. `rds.logical_replication` 파라미터를 찾아 `1`로 설정하여 논리적 복제를 켭니다.

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 파라미터 변경 사항이 적용되게 합니다.

1. 인스턴스를 사용할 수 있다면 `psql`(또는 pgAdmin)을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결할 수 있습니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. plogical이 초기화되었는지 확인하려면 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pglogical
   (1 row)
   ```

1. 논리적 디코딩을 활성화하는 설정을 다음과 같이 확인합니다.

   ```
   SHOW wal_level;
   wal_level
   -----------
    logical
   (1 row)
   ```

1. 다음과 같이 확장을 생성합니다.

   ```
   CREATE EXTENSION pglogical;
   EXTENSION CREATED
   ```

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

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 데이터베이스 목록에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택한 다음, 작업 메뉴에서 **재부팅**을 선택합니다.

## AWS CLI
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.CLI"></a>

**plogical 확장 설정 방법**

AWS CLI를 사용하여 pglogical을 설정하려면 다음 절차와 같이 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 작업을 호출하여 사용자 지정 파라미터 그룹의 특정 파라미터를 수정합니다.

1. 다음 AWS CLI 명령을 사용하여 `shared_preload_libraries` 파라미터에 `pglogical`를 추가합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pglogical,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령을 사용하여 `rds.logical_replication`을 `1`로 설정하여 Aurora PostgreSQL DB 클러스터터의 라이터 인스턴스용 논리적 디코딩 기능을 켭니다. 

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 pglogical 라이브러리가 초기화되도록 합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

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

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. 다음과 같이 확장을 생성합니다.

   ```
   CREATE EXTENSION pglogical;
   EXTENSION CREATED
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```