영역 복제를 사용하여 데이터 보호

문서 버전을 선택합니다.

이 페이지에서는 동일한 리전 내에 하나 이상의 데이터베이스 복제본을 배포하여 노드 수준 또는 영역 수준 장애로부터 보호하는 고가용성을 제공하는 AlloyDB Omni 향상된 가용성 참조 아키텍처를 설명합니다.

사용 사례

이 가용성 참조 아키텍처는 다음 사용 사례에 적합합니다.

  • RTO 및 RPO가 낮은 비즈니스에 중요한 애플리케이션
  • 데이터베이스의 고가용성을 제공하고 인스턴스, 서버, 영역 장애로부터 보호하는 다른 영역 또는 노드에 복제본을 배포하려고 합니다.
  • 사용자 오류 및 데이터 손상으로부터 보호 (백업 사용)

참조 아키텍처 작동 방식

향상된 가용성은 리전 내에 읽기 복제본 인스턴스를 추가하여 고가용성(HA)을 지원함으로써 표준 가용성을 보완하며, 이를 통해 목표 복구 시간(RTO)이 단축됩니다. 또한 이 접근 방식은 트랜잭션 변경사항을 복제본으로 스트리밍할 수 있도록 하여 복구 지점 목표(RPO)를 줄입니다.

AlloyDB Omni의 고가용성은 데이터베이스 인스턴스를 2개 이상 사용합니다. 하나의 인스턴스는 읽기 및 쓰기 작업을 지원하는 기본 데이터베이스로 작동합니다. 나머지 인스턴스는 읽기 전용 모드로 작동하는 읽기 복제본 역할을 합니다.

다음은 중요한 HA 개념입니다.

  • 장애 조치는 계획되지 않은 중단 중에 기본 인스턴스가 실패하거나 사용할 수 없게 되고 대기 복제본이 활성화되어 기본 (읽기-쓰기) 모드를 가정하는 절차입니다. 이 프로세스를 승격이라고 합니다. 일반적으로 이러한 시나리오에서 기본 서버 또는 데이터베이스가 다시 온라인 상태가 되면 데이터베이스를 다시 빌드해야 하며 대기 상태로 작동해야 합니다. 가동시간을 높이기 위해 장애 조치를 자동으로 실행하는 메커니즘이 마련되어 있습니다.
  • 전환(역할 역전이라고도 함)은 기본 데이터베이스와 대기 데이터베이스 중 하나 간에 모드를 전환하는 데 사용되는 절차로, 기본 데이터베이스가 대기 데이터베이스가 되고 대기 데이터베이스가 기본 데이터베이스가 됩니다. 일반적으로 전환은 제어된 방식으로 원활하게 이루어지며, 이전 기본 데이터베이스의 다운타임 및 패치를 허용하는 등 다양한 이유로 시작될 수 있습니다. 단계적 전환은 새로운 대기 또는 복제 구성의 기타 측면을 다시 인스턴스화하지 않고도 향후 다시 전환할 수 있어야 합니다.

고가용성 옵션

HA를 지원하기 위해 다음과 같은 방법으로 AlloyDB Omni를 배포할 수 있습니다.

참고: PatroniHAProxy는 비상업용 서드 파티 도구이며 AlloyDB Omni와 호환됩니다.

하나의 데이터베이스 손실이 클러스터의 고가용성에 영향을 미치지 않도록 대기 데이터베이스를 두 개 이상 사용하는 것이 좋습니다. 이 모드에서는 장애 조치 시 또는 노드의 계획된 유지관리 중에 하나 이상의 HA 쌍이 있습니다.

AlloyDB Omni 배포의 크기와 모양을 계획하려면 VM에 AlloyDB Omni 설치 계획하기를 참고하세요.

부하 분산기

더 원활한 전환 및 장애 조치 절차를 지원하는 또 다른 중요한 메커니즘은 부하 분산기의 존재입니다. Kubernetes가 아닌 배포의 경우 HAProxy 소프트웨어가 부하 분산을 제공합니다. HAProxy는 여러 서버에 네트워크 트래픽을 분산하여 부하 분산을 제공합니다. 또한 HAProxy는 상태 점검을 실행하여 연결된 백엔드 서버의 상태를 유지합니다. 서버가 상태 점검에 실패하면 HAProxy는 서버가 상태 점검을 다시 통과할 때까지 서버로 트래픽을 전송하지 않습니다.

Kubernetes 연산자는 유사한 방식으로 작동하는 자체 부하 분산기를 배포하여 부하 분산기를 가리키는 데이터베이스 서비스를 만들어 사용자에게 투명하게 만듭니다.

고가용성

리전 내에 배포된 읽기 전용 복제본 데이터베이스는 기본 데이터베이스에 장애가 발생할 경우 고가용성을 제공합니다. 기본 데이터베이스 장애가 발생하면 대기 데이터베이스가 승격되어 기본 데이터베이스를 대체하고 애플리케이션은 서비스 중단이 거의 또는 전혀 없이 계속됩니다.

일반적으로 이러한 데이터베이스를 사용하는 모든 애플리케이션이 적절한 시간 내에 계속 연결하고 응답할 수 있도록 전환의 형태로 연간 또는 반기별로 정기적인 검사를 실행하는 것이 좋습니다.

대기 읽기 복제본 중 하나를 기본 데이터베이스와 다른 가용성 영역에 배치하여 두 배포 유형 모두에서 영역 수준 보호를 달성할 수 있습니다.

읽기 복제본을 사용하면 최신 데이터를 사용하여 보고 데이터베이스 역할을 할 수 있는 대기 데이터베이스로 읽기 전용 작업을 오프로드할 수 있다는 추가적인 이점이 있습니다. 이 접근 방식은 읽기-쓰기 기본 서버의 부하와 오버헤드를 줄여줍니다.

백업 및 고가용성 구성

읽기 복제본은 고가용성을 제공하는 여러 영역에 설정할 수 있습니다. 이러한 솔루션은 낮은 RTO와 RPO를 제공하지만 실수로 인한 테이블 삭제 또는 잘못된 데이터 업데이트와 같은 논리적 데이터 손상과 같은 특정 중단으로부터는 보호하지 않습니다. 따라서 HA 설정 외에도 정기적인 백업을 수행해야 합니다. 자세한 내용은 표준 가용성 아키텍처 문서를 참고하세요.

그림 1은 서로 다른 두 가용성 영역에 읽기 전용 복제본 대기 데이터베이스가 두 개 있는 권장 HA 구성을 보여줍니다.

백업 및 고가용성 옵션이 있는 AlloyDB Omni

그림 1. 백업 및 고가용성 옵션이 있는 AlloyDB Omni

기본 인스턴스가 실패할 경우 데이터 손실을 방지하려면 동기 모드로 복제를 구성해야 합니다. 이 방법은 강력한 데이터 보호 기능을 제공하지만 모든 커밋을 기본 데이터베이스와 동기화된 모든 대기 데이터베이스에 작성해야 하므로 기본 데이터베이스 성능에 영향을 미칠 수 있습니다. 이 설정에는 이러한 데이터베이스 인스턴스 간의 지연 시간이 짧은 네트워크 연결이 중요합니다.

Kubernetes HA 배포

Kubernetes 배포의 경우 AlloyDB Omni 배포 파일에 몇 가지 기본 속성을 변경하고 추가하여 장애 조치 대기 또는 읽기 복제본을 추가하여 기본 데이터베이스 장애를 허용할 수 있습니다. 장애 조치 대기 및 읽기 전용 복제본을 구성할 수 있으며, 운영자는 서비스를 프로비저닝하고 게시합니다. 또한 이 연산자는 장애 조치 후 대기 데이터베이스 재빌드, AlloyDB Omni Kubernetes 엔진에 내장된 복구 메커니즘 사용 등 다양한 HA 프로세스를 자동화합니다.

Kubernetes 배포에서 인프라 및 애플리케이션 가용성은 노드 및 포드 장애를 처리하는 기본 제공 Kubernetes 기능의 이점을 누립니다.

기본 제공 보호 외에도 연산자는 실패한 기본 또는 대기 감지에 영향을 미치는 다음 매개변수를 노출합니다.

  • healthcheckPeriodSeconds: 상태 점검 간 시간입니다. 기본값은 30초입니다.
  • autoFailoverTriggerThreshold: 장애 조치를 시작하기 전 연속으로 실패한 상태 점검 수입니다. 기본값은 3입니다.

자세한 내용은 Kubernetes에서 고가용성 관리를 참고하세요.

Kubernetes가 아닌 HA 배포

독립형 비 Kubernetes 배포는 서드 파티 도구가 필요한 수동 구성으로, Kubernetes 배포보다 설정 및 유지관리가 더 복잡합니다.

Kubernetes가 아닌 배포를 사용하는 경우 장애 조치가 감지되는 방식과 기본 서버를 사용할 수 없게 된 후 장애 조치가 발생하는 시점에 영향을 미치는 매개변수가 있습니다. 다음은 이러한 매개변수를 간략하게 요약한 내용입니다.

  • Ttl: 장애 조치를 시작하기 전에 기본 데이터베이스의 잠금을 획득하는 데 걸리는 최대 시간입니다. 기본값은 30초입니다.
  • Loop_wait: 다시 확인하기 전에 대기할 시간입니다. 기본값은 10초입니다.
  • Retry_timeout: 네트워크 오류로 인해 기본 인스턴스를 다운그레이드하기 전의 제한 시간입니다. 기본값은 10초입니다.

자세한 내용은 PostgreSQL용 AlloyDB Omni의 고가용성 아키텍처를 참고하세요.

구현

가용성 참조 아키텍처를 선택할 때는 다음 이점, 제한사항, 대안을 고려하세요.

이점

  • 인스턴스 장애로부터 보호합니다.
  • 서버 오류로부터 보호합니다.
  • 영역 장애로부터 보호합니다.
  • RTO가 Standard Availability보다 크게 감소했습니다.

제한사항

  • 지역 재해에 대한 추가 보호가 없습니다.
  • 동기 복제로 인해 기본 노드에 미칠 수 있는 성능 영향
  • 동기 모드에서 PostgreSQL WAL 스트리밍을 구성하면 정상 작동 또는 일반적인 장애 조치 중에 데이터 손실이 발생하지 않습니다 (RPO=0). 하지만 이 접근 방식은 모든 대기 인스턴스가 손실되거나 기본 인스턴스에서 연결할 수 없게 된 후 기본 인스턴스가 즉시 다시 시작되는 등 특정 이중 장애 상황에서 데이터 손실을 방지하지는 않습니다.

대안

다음 단계