업데이트 : 나는 이것에 대해 AWS 포럼에 게시했습니다 . 차임으로 가서 문의하십시오 .
작성 시점에서 Amazon RDS는 RDS 외부의 물리적 복제를 지원하지 않습니다. 당신은 할 수있는 GRANT
사용자에게 REPLICATION
사용하여 바로 rds_superuser
로그인을하지만, 당신이 구성 할 수 replication
있는 외부 IP에 대한 항목 pg_hba.conf
.
또한 RDS에서 DB 파라미터 그룹을 생성하면 일부 주요 파라미터가 표시되지만 잠겨 있습니다 (예 : archive_command
에 잠겨 있음) /etc/rds/dbbin/pgscripts/rds_wal_archive %p
. PostgreSQL 용 AWS RDS는 외부 액세스 (예 : S3를 통해)에 대해 WAL 배송 복제를 외부 PITR에 사용해야하는 경우 이러한 WAL을 노출하지 않는 것으로 보입니다.
따라서이 시점에서 Wal-shipping을 원하면 RDS를 사용하지 마십시오. 사용하기 쉬운 통조림 데이터베이스이지만 사용하기 쉽다는 것은 종종 데이터베이스가 제한되어 있다는 것을 의미합니다. Joe Love가 의견에서 지적한 것처럼 RDS 내에서 WAL 운송 및 PITR을 제공 하지만 RDS 외부 에서 WAL에 액세스 할 수는 없습니다 .
따라서 덤프, 스냅 샷 및 자체 WAL 기반 PITR과 같은 RDS 자체 백업 기능을 사용해야합니다.
RDS에서 복제 연결 ( pg_basebackup
또는 스트리밍 복제)을 설정하고 보관 된 WAL에 액세스하도록 허용하더라도 실제로 해당 WAL을 사용하지 못할 수 있습니다. RDS는 패치 된 PostgreSQL을 실행하지만 아무도 패치가 얼마나 많이 적용되는지 또는 디스크 포맷이 크게 변경되는지는 아무도 모릅니다. 또한 x64 Linux이지만 아마도 결정하기 어려운 Amazon이 선택한 아키텍처에서 실행됩니다. PostgreSQL의 디스크 형식 및 복제는 아키텍처에 따라 다르므로 Amazon RDS에서 사용하는 것과 동일한 아키텍처를 가진 호스트에만 PostgreSQL 빌드가 호환되는 경우에만 복제 할 수 있습니다.
무엇보다도 이는 RDS에서 쉽게 마이그레이션 할 수있는 방법이 없다는 것을 의미합니다. 를 가져 와서 pg_dump
복원하고 새 DB를 실행 하기에 충분한 시간 동안 데이터베이스에 대한 모든 쓰기를 중지해야합니다 . DB 호스트에 직접 액세스 할 수 없으므로 복제 및 페일 오버, rsync 등의 일반적인 트릭이 작동하지 않습니다.
RDS가 패치되지 않은 PostgreSQL을 실행하더라도 Amazon pg_basebackup
은 보안상의 이유로 RDS로 WAL 스트리밍을하거나 RDS로 가져 오기를 원하지 않을 것입니다 . PostgreSQL은 데이터 디렉토리를 신뢰할 수있는 컨텐츠로 취급하며, 내부 기능을 연결하거나 다른 까다로운 작업을 수행하는 영리한 'LANGUAGE c'기능을 만든 경우 서버를 이용하여 예상보다 더 많은 액세스 권한을 얻을 수 있습니다 . 따라서 아마존은 곧 인바운드 WAL을 허용하지 않습니다.
아웃 바운드 WAL 전송을 지원할 수 있지만 형식 호환성, 자유롭게 변경할 수있는 위의 문제는 여전히 적용됩니다.
대신 Londiste 또는 Bucardo와 같은 도구를 사용해야합니다.