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

문서 버전을 선택합니다.

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

사용 사례

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

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

참조 아키텍처 작동 방식

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

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

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

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

고가용성 옵션

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

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

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

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

부하 분산기

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

Kubernetes 연산자는 유사한 방식으로 작동하는 자체 부하 분산기를 배포하므로 부하 분산기를 가리키는 데이터베이스 서비스를 만들어 사용자가 영향을 받지 않게 할 수 있습니다.

고가용성

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

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

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

읽기 복제본이 갖는 또 다른 이점은 읽기 전용 작업을 대기 데이터베이스로 오프로드하여 최신 데이터를 사용하는 보고 데이터베이스 역할을 할 수 있다는 점입니다. 이 방식은 읽기-쓰기 기본 데이터베이스의 부하와 오버헤드를 줄여줍니다.

백업 및 고가용성 구성

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

그림 1에서는 서로 다른 두 가용성 영역에 읽기 복제본 대기 데이터베이스가 2개 있는 권장 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 미리 쓰기 로깅 스트리밍을 구성하면 정상 작동이나 일반적인 장애 조치 중에 데이터 손실이 발생하지 않습니다(RPO=0). 하지만 이 방식은 모든 대기 인스턴스가 손실되거나 기본 인스턴스에서 연결할 수 없게 된 후 기본 인스턴스가 즉시 다시 시작되는 등 특정 이중 장애 상황에서 데이터 손실을 방지하지는 않습니다.

대안

다음 단계