Amazon Aurora PostgreSQL를 사용한 복제 - Amazon Aurora

Amazon Aurora PostgreSQL를 사용한 복제

아래에서 Amazon Aurora PostgreSQL을 이용한 복제에 관한 정보를 확인할 수 있습니다. 논리적 복제를 모니터링하고 사용하는 방법에 관한 내용도 포함되어 있습니다.

Aurora 복제본 사용

Aurora복제본Aurora은 DB 클러스터의 독립 엔드포인트로서, 읽기 작업을 조정하고 가용성을 높이는 데 사용하기에 가장 적합합니다. Aurora DB 클러스터는 Aurora DB 클러스터의 AWS 리전의 가용 영역 전체에서 최대 15개의 Aurora 복제본까지 포함할 수 있습니다.

DB 클러스터 볼륨은 DB 클러스터의 데이터 사본들로 구성됩니다. 하지만 DB 클러스터의 기본 라이터 DB 인스턴스 및 Aurora 복제본에는 클러스터 볼륨의 데이터가 단 하나의 논리 볼륨으로 표시됩니다. Aurora 복제본에 대한 자세한 내용은 Aurora 복제본 단원을 참조하십시오.

Aurora 복제본은 클러스터 볼륨의 읽기 연산에 전적으로 사용되므로 읽기 조정에 유용합니다. 라이터 DB 인스턴스는 쓰기 작업을 관리합니다. 클러스터 볼륨은 Aurora PostgreSQL DB 클러스터에 있는 모든 인스턴스에 공유됩니다. 따라서 각 Aurora 복제본에 대해 데이터 사본을 복제하기 위해 추가 작업을 할 필요가 없습니다.

Aurora PostgreSQL에서 Aurora 복제본이 삭제되면 인스턴스 엔드포인트가 즉시 제거되고 Aurora 복제본이 리더 엔드포인트에서 제거됩니다. 삭제되는 Aurora 복제본을 실행하는 문이 있는 경우 3분의 유예 기간이 있습니다. 기존 문은 유예 기간 동안 정상적으로 완료할 수 있습니다. 유예 기간이 종료되면 Aurora 복제본이 종료 및 삭제됩니다.

Aurora PostgreSQL DB 클러스터는 Aurora 글로벌 데이터베이스를 사용하여 서로 다른 AWS 리전에서 Aurora 복제본을 지원합니다. 자세한 내용은 Amazon Aurora 글로벌 데이터베이스 사용 단원을 참조하십시오.

참고

향상된 읽기 가용성 기능을 사용할 때는 DB 클러스터의 Aurora 복제본을 재부팅해야 하는 경우 수동으로 재부팅해야 합니다. 이 기능 재부팅 전에 생성된 DB 클러스터의 경우 라이터 DB 인스턴스가 Aurora 복제본을 자동으로 재부팅합니다. 자동 재부팅을 통해 DB 클러스터 전반에 걸친 읽기/쓰기 일관성을 보장하는 진입점이 다시 구성됩니다.

Aurora 복제본의 읽기 가용성 향상

Aurora PostgreSQL은 라이터 DB 인스턴스가 다시 시작되거나 Aurora 복제본이 쓰기 트래픽을 따라가지 못할 때 읽기 요청을 지속적으로 처리하여 DB 클러스터의 읽기 가용성을 향상시킵니다.

읽기 가용성 기능은 다음 버전의 Aurora PostgreSQL에서 기본적으로 사용할 수 있습니다.

  • 16.1 이상의 모든 버전

  • 15.2 이상의 15 버전

  • 14.7 이상의 14 버전

  • 13.10 이상의 13 버전

  • 12.14 이상의 12 버전

읽기 가용성 기능은 다음 버전의 Aurora 글로벌 데이터베이스에서 지원됩니다.

  • 16.1 이상의 모든 버전

  • 15.4 이상의 15 버전

  • 14.9 이상의 14 버전

  • 13.12 이상의 13 버전

  • 12.16 이상의 12 버전

이 출시 전에 이러한 버전 중 하나에서 생성된 DB 클러스터의 읽기 가용성 기능을 사용하려면 DB 클러스터의 라이터 인스턴스를 다시 시작하세요.

Aurora PostgreSQL DB 클러스터의 정적 파라미터를 수정하는 경우, 파라미터 변경 사항이 적용되도록 라이터 인스턴스를 다시 시작해야 합니다. 예를 들어 shared_buffers 값을 설정할 때 라이터 인스턴스를 다시 시작해야 합니다. Aurora 복제본의 개선된 가용성을 통해 DB 클러스터는 이러한 다시 시작 중에도 읽기 가용성을 유지하므로 라이터 인스턴스 변경의 영향이 줄어듭니다. 리더 인스턴스는 다시 시작되지 않고 읽기 요청에 계속 응답합니다. 정적 파라미터 변경 사항을 적용하려면 각 개별 리더 인스턴스를 재부팅합니다.

Aurora PostgreSQL DB 클러스터의 Aurora 복제본은 라이터와 다시 연결된 후 인 메모리 데이터베이스 상태로 빠르게 복구하여 라이터 다시 시작, 장애 조치, 느린 복제 및 네트워크 문제와 같은 복제 오류를 복구할 수 있습니다. 이 접근 방식을 통해 클라이언트 데이터베이스의 가용성을 유지하면서도 Aurora 복제본 인스턴스가 최신 스토리지 업데이트로 일관성을 달성할 수 있습니다.

복제 복구와 충돌하는 진행 중인 트랜잭션에서는 오류가 발생할 수 있지만, 리더가 라이터를 따라잡은 후에 클라이언트가 이러한 트랜잭션을 다시 시도할 수 있습니다.

Aurora 복제본 모니터링

라이터 연결이 끊긴 상태에서 복구될 때 Aurora 복제본을 모니터링할 수 있습니다. 아래 지표를 사용하여 리더 인스턴스에 대한 최신 정보를 확인하고 처리 중인 읽기 전용 트랜잭션을 추적하세요.

  • 리더 인스턴스가 계속 연결되어 있는 동안 리더 인스턴스에 대한 최신 정보를 반환하도록 aurora_replica_status 기능이 업데이트되었습니다. aurora_replica_status에서 쿼리가 실행되는 DB 인스턴스에 해당하는 행의 마지막 업데이트 타임스탬프는 항상 비어 있습니다. 이는 리더 인스턴스에 최신 데이터가 있음을 나타냅니다.

  • Aurora 복제본이 라이터 인스턴스와의 연결을 끊었다가 다시 연결되면 다음 데이터베이스 이벤트가 발생합니다.

    Read replica has been disconnected from the writer instance and reconnected.

  • 복구 충돌로 인해 읽기 전용 쿼리가 취소되면 데이터베이스 오류 로그에 다음과 같은 오류 메시지가 하나 이상 표시될 수 있습니다.

    Canceling statement due to conflict with recovery.

    User query may not have access to page data to replica disconnect.

    User query might have tried to access a file that no longer exists.

    When the replica reconnects, you will be able to repeat your command.

제한 사항

개선된 가용성을 사용하는 Aurora 복제본에는 다음 제한 사항이 적용됩니다.

  • 복제 복구 중에 쓰기 인스턴스에서 데이터를 스트리밍할 수 없는 경우 보조 DB 클러스터의 Aurora 복제본이 다시 시작될 수 있습니다.

  • Aurora 복제본은 온라인 복제 복구가 이미 진행 중이고 다시 시작될 경우 온라인 복제 복구를 지원하지 않습니다.

  • Aurora 복제본은 DB 인스턴스가 트랜잭션 ID 랩어라운드에 가까워지면 다시 시작됩니다. 트랜잭션 ID 랩어라운드에 대한 자세한 내용은 트랜잭션 ID 랩어라운드 실패 방지를 참조하세요.

  • 특정 상황에서 복제 프로세스가 차단되면 Aurora 복제본을 다시 시작할 수 있습니다.

Aurora PostgreSQL 복제 모니터링

읽기 조정과 고가용성은 최소 지연 시간에 따라 달라집니다. Amazon CloudWatch ReplicaLag 지표를 모니터링하면 Aurora 복제본의 Aurora PostgreSQL DB 클러스터 라이터 DB 인스턴스 지연 시간을 모니터링할 수 있습니다. Aurora 복제본은 라이터 DB 인스턴스와 동일한 클러스터 볼륨에서 읽으므로 ReplicaLag 지표가 Aurora PostgreSQL DB 클러스터에서와는 다른 의미를 갖습니다. Aurora 복제본의 ReplicaLag 지표는 라이터 DB 인스턴스 대비 Aurora 복제본의 페이지 캐시 지연 시간을 나타냅니다.

RDS 인스턴스 및 CloudWatch 지표 모니터링에 대한 자세한 내용은 Amazon Aurora 클러스터에서 지표 모니터링 단원을 참조하십시오.