> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Amazon RDS Postgres를 ClickPipes 소스로 설정합니다

# RDS Postgres 소스 설정 가이드

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<div id="supported-postgres-versions">
  ## 지원되는 Postgres 버전
</div>

ClickPipes는 Postgres 12 이상을 지원합니다.

<div id="enable-logical-replication">
  ## 논리적 복제 활성화
</div>

RDS 인스턴스에 다음 설정이 이미 구성되어 있으면 이 섹션은 건너뛰어도 됩니다:

* `rds.logical_replication = 1`

이전에 다른 데이터 복제 도구를 사용한 경우에는 일반적으로 이 설정이 미리 구성되어 있습니다.

```text theme={null}
postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)
```

아직 구성하지 않았다면 다음 단계를 따르십시오.

1. 필요한 설정이 포함된, 사용 중인 Postgres 버전에 맞는 새 파라미터 그룹을 생성합니다.
   * `rds.logical_replication`을 1로 설정합니다

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=bf3dec7b460a2854bea825b58d4ca700" alt="RDS에서 파라미터 그룹을 찾는 위치" size="lg" border width="1800" height="819" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=ec9a8af1520d7926d965fcd057465b7c" alt="rds.logical_replication 변경" size="lg" border width="1800" height="795" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.png" />

2. 새 파라미터 그룹을 RDS Postgres 데이터베이스에 적용합니다

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=3f55bb68a8609d57fbdd838ea478675e" alt="새 파라미터 그룹을 사용하도록 RDS Postgres 수정" size="lg" border width="1800" height="1352" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.png" />

3. 변경 사항을 적용하려면 RDS 인스턴스를 재부팅합니다

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=e7be43059259551c1f747a2abe9fe166" alt="RDS Postgres 재부팅" size="lg" border width="1800" height="757" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.png" />

<div id="configure-database-user">
  ## 데이터베이스 사용자 구성
</div>

RDS Postgres 인스턴스에 관리자 사용자로 접속한 다음, 아래 명령을 실행합니다:

1. ClickPipes 전용 사용자를 생성합니다:

   ```sql theme={null}
   CREATE USER clickpipes_user PASSWORD 'some-password';
   ```

2. 이전 단계에서 생성한 사용자에게 스키마(schema) 수준의 읽기 전용 액세스 권한을 부여합니다. 다음 예시는 `public` 스키마에 대한 권한을 보여줍니다. 복제하려는 테이블이 포함된 각 스키마에 대해 이 명령을 반복하십시오:

   ```sql theme={null}
   GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
   GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
   ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;
   ```

3. 사용자에게 복제 권한을 부여합니다:

   ```sql theme={null}
   GRANT rds_replication TO clickpipes_user;
   ```

4. 복제하려는 테이블을 포함하는 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)을 생성합니다. 성능 오버헤드를 피하려면 publication에는 필요한 테이블만 포함하는 것을 강력히 권장합니다.

<Warning>
  publication에 포함되는 모든 테이블은 **기본 키(primary key)** 가 정의되어 있거나 **replica identity** 가 `FULL`로 설정되어 있어야 합니다. 범위를 지정하는 방법에 대한 자세한 내용은 [Postgres FAQs](/ko/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication)를 참조하십시오.
</Warning>

* 특정 테이블에 대한 publication을 생성하려면:

  ```sql theme={null}
  CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
  ```

  * 특정 스키마의 모든 테이블에 대한 publication을 생성하려면:

    ```sql theme={null}
    CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
    ```

`clickpipes` publication에는 지정된 테이블에서 생성된 변경 이벤트 집합이 포함되며, 이후 복제 스트림을 수집하는 데 사용됩니다.

<div id="configure-network-access">
  ## 네트워크 액세스 설정
</div>

<div id="ip-based-access-control">
  ### IP 기반 액세스 제어
</div>

RDS 인스턴스로의 트래픽을 제한하려면 [문서에 안내된 정적 NAT IP 주소](/ko/integrations/clickpipes/home#list-of-static-ips)를 RDS 보안 그룹의 `인바운드 규칙`에 추가하십시오.

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=d809713b15c3903640dfecd1b53a473c" alt="RDS Postgres에서 보안 그룹을 어디서 찾을 수 있습니까?" size="lg" border width="1800" height="707" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=d8d14ebac6077992b5cd0e060b81c315" alt="위 보안 그룹의 인바운드 규칙 편집" size="lg" border width="1800" height="935" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png" />

<div id="private-access-via-aws-privatelink">
  ### AWS PrivateLink를 통한 비공개 액세스
</div>

비공개 네트워크를 통해 RDS 인스턴스에 연결하려면 AWS PrivateLink를 사용할 수 있습니다. 연결을 설정하려면 [ClickPipes용 AWS PrivateLink 설정 가이드](/ko/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes)를 따르십시오.

<div id="workarounds-for-rds-proxy">
  ### RDS Proxy 우회 방안
</div>

RDS Proxy는 논리적 복제 연결을 지원하지 않습니다. RDS에서 동적 IP 주소를 사용하며 DNS 이름이나 Lambda를 사용할 수 없는 경우, 다음과 같은 대안을 고려할 수 있습니다:

1. cron 작업을 사용해 RDS endpoint의 IP를 주기적으로 확인하고, 변경된 경우 NLB를 업데이트합니다.
2. EventBridge/SNS와 함께 RDS Event Notifications 사용: AWS RDS 이벤트 알림을 사용해 업데이트가 자동으로 수행되도록 트리거합니다.
3. 고정 EC2: EC2 인스턴스를 배포해 폴링 서비스 또는 IP 기반 프록시 역할을 하도록 구성합니다.
4. Terraform 또는 CloudFormation 같은 도구를 사용해 IP 주소 관리를 자동화합니다.

<div id="whats-next">
  ## 다음 단계
</div>

이제 [ClickPipe를 생성](/ko/integrations/clickpipes/postgres)하고 Postgres 인스턴스의 데이터를 ClickHouse Cloud로 수집하기 시작할 수 있습니다.
ClickPipe 생성 과정에서 필요하므로 Postgres 인스턴스를 설정할 때 사용한 연결 정보를 반드시 기록해 두십시오.
