Azure Cosmos DB for PostgreSQL의 읽기 복제본
적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)
읽기 복제본 기능을 사용하면 클러스터에서 읽기 전용 클러스터로 데이터를 복제할 수 있습니다. 복제본은 PostgreSQL의 물리적 복제 기술을 이용하여 비동기식으로 업데이트됩니다. 주 서버에서 최대 5개의 복제본으로 실행할 수 있습니다.
복제본은 일반 클러스터와 유사하게 관리하는 새 클러스터입니다. 읽기 복제본의 경우, vCore 및 스토리지에 프로비저닝된 컴퓨팅에 대한 비용이 GiB/월 단위로 청구됩니다. 복제본 클러스터의 컴퓨팅 및 스토리지 비용은 일반 클러스터와 동일합니다.
복제본을 만들고 관리하는 방법을 알아봅니다.
읽기 복제본을 사용하는 경우
읽기 복제본 기능은 읽기 작업이 많은 워크로드의 성능과 규모를 향상시키는 데 도움이 됩니다. 읽기 워크로드는 복제본으로 분리할 수 있고 쓰기 워크로드는 주 서버로 보낼 수 있습니다.
일반적인 시나리오는 BI와 분석 워크로드가 보고를 위한 데이터 원본으로 읽기 복제본을 사용하도록 합니다.
복제본은 읽기 전용이기 때문에 주 서버에 대한 쓰기 용량 부담을 직접적으로 줄이지는 못합니다.
고려 사항
이 기능은 복제 지연이 허용되는 시나리오를 위한 것이며 쿼리를 오프로딩하기 위한 것입니다. 복제본 데이터가 최신 상태로 유지되는 동기 복제 시나리오를 위한 것은 아닙니다. 주 서버와 복제본 간에는 측정 가능한 지연이 발생합니다. 지연 시간은 주 서버와 복제본 간의 대기 시간 및 워크로드에 따라 몇 분 또는 몇 시간이 될 수도 있습니다. 복제본의 데이터는 결과적으로 주 서버의 데이터와 일치하게 됩니다. 이러한 지연 시간을 수용할 수 있는 워크로드에 이 기능을 사용합니다.
복제본 만들기
복제본 만들기 워크플로를 시작하면 빈 클러스터가 만들어집니다. 새 클러스터는 기본 클러스터에 있던 데이터로 채워집니다. 생성 시간은 주 서버의 데이터 양과 지난 주 전체 백업 이후의 시간에 따라 달라집니다. 시간은 몇 분에서 몇 시간까지 걸릴 수 있습니다.
읽기 복제본 기능은 PostgreSQL의 물리적 복제(논리 복제 아님)를 사용합니다. 기본 모드는 복제 슬롯을 사용하는 스트리밍 복제입니다. 필요한 경우 따라잡기 위해 로그 전달이 사용됩니다.
Azure Portal에서 읽기 복제본을 만드는 방법을 알아봅니다.
복제본에 연결
복제본을 만들 때 기본 클러스터는 방화벽 규칙을 상속하지 않습니다. 이러한 규칙은 복제본에 대해 별도로 설정해야 합니다.
복제본은 기본 클러스터에서 관리자(citus
) 계정을 상속합니다.
사용자 계정은 모두 읽기 복제본으로 복제됩니다. 주 서버에서 사용 가능한 사용자 계정을 사용해야만 읽기 복제본에 연결할 수 있습니다.
일반 클러스터에서와 같이 호스트 이름과 유효한 사용자 계정을 사용하여 복제본의 코디네이터 노드에 연결할 수 있습니다. 예를 들어 관리 사용자 이름이 citus인 my replica 서버의 경우 다음과 같이 psql을 사용하여 복제본의 코디네이터 노드에 연결할 수 있습니다.
psql -h c-myreplica.12345678901234.postgres.cosmos.azure.com -U citus@myreplica -d postgres
프롬프트가 표시되면 사용자 계정의 암호를 입력합니다.
복제본을 독립 클러스터로 승격
읽기 및 쓰기가 가능한 독립 클러스터로 복제본을 승격할 수 있습니다. 승격된 복제본은 더 이상 원본에서 업데이트를 받지 않으며 승격을 취소할 수 없습니다. 승격된 복제본은 자체 복제본을 가질 수 있습니다.
복제본 승격에는 두 가지 일반적인 시나리오가 있습니다.
재해 복구 기본 또는 전체 지역에 문제가 발생하면 비상 프로시저로 쓰기 위해 다른 클러스터를 열 수 있습니다.
다른 지역으로 마이그레이션. 다른 지역으로 이동하려면 새 지역에 복제본을 만들고 데이터가 따라잡을 때까지 기다린 다음 복제본을 승격합니다. 승격 중 데이터 손실 가능성을 방지하려면 복제본이 따라잡은 후 원래 클러스터에 대한 쓰기를 사용하지 않도록 설정할 수 있습니다.
replication_lag
메트릭을 사용하여 복제본이 따라잡은 정도를 확인할 수 있습니다. 자세한 내용은 메트릭을 참조하세요.
고려 사항
이 섹션에서는 읽기 복제본 기능의 고려 사항에 대한 요약이 제공됩니다.
새 복제본
읽기 복제본이 새 클러스터로 만들어집니다. 기존 클러스터는 복제본으로 만들 수 없습니다. 다른 읽기 복제본의 복제본은 만들 수 없습니다.
복제본 구성
복제본은 주 서버에서 컴퓨팅, 스토리지, 작업자 노드 설정을 상속받습니다. 복제본에서 모두는 아니지만 일부 설정을 변경할 수 있습니다. 예를 들어 컴퓨팅, 퍼블릭 액세스에 대한 방화벽 규칙, 프라이빗 액세스용 프라이빗 엔드포인트를 변경할 수 있습니다. 스토리지 크기 또는 작업자 노드 수는 변경할 수 없습니다.
주 서버에서 도착하는 변경 내용을 유지할 수 있도록 복제본을 충분히 강력하게 유지해야 합니다. 예를 들어 주 서버에서 컴퓨팅 능력을 업스케일링하면 복제본에서도 컴퓨팅 능력을 업스케일링해야 합니다.
방화벽 규칙과 매개 변수 설정은 복제본을 만들 때 또는 이후에 주 서버에서 복제본으로 상속되지 않습니다.
지역 간 복제
읽기 복제본은 기본 클러스터의 지역이나 Azure Cosmos DB for PostgreSQL에서 지원하는 다른 지역에서 만들 수 있습니다. 클러스터당 5개의 복제본 제한은 모든 지역에 걸쳐 계산됩니다. 즉, 지역당 5개가 아니라 총 5개입니다.