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

문서 버전을 선택합니다.

이 페이지에서는 동일한 리전 내에 하나 이상의 데이터베이스 복제본을 배포하여 노드 수준 또는 영역 수준의 장애로부터 보호하는 고가용성을 제공하는 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가 크게 감소했습니다.

제한사항

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

대안

다음 단계