반응형

[AWS Aurora] Aurora Global Database 사용한 Cross-Region 장애조치

 

l  Version : AWS Aurora

 

Amazon Aurora Global Database 여러 AWS 리전에 걸쳐 있고 대기 시간이 짧은 글로벌 읽기를 지원하기 때문에, 전세계 지역에서 실행되는 애플리케이션들은 가까운 리전의 Aurora Global Database에서 서비스를 제공받기 때문에 안정적이며 빠른 서비스를 제공할 있다. 또한 Aurora Global Database 데이터를 마스터링하는 하나의 기본 AWS 리전 최대 5개의 읽기 전용 보조 AWS 리전으로 구성되기 때문에, AWS 리전에서 장애 발생시 신속하게 다른 리전으로 복구할 있다.  Aurora Global Database 아래와 같은 장점을 가지고 있다.

l  로컬 대기 시간으로 글로벌 읽기 : 세계에 지사를 두고 있는 경우, Aurora Global Database 사용하여 기본 AWS 리전에서 정보의 주요 소스를 최신 상태로 유지할 있다. 다른 리전의 사무실은 로컬 지연 시간을 사용하여 해당 리전의 정보에 액세스할 있다.

l  확장 가능한 보조 Aurora DB 클러스터 : AWS 리전에 읽기 전용 인스턴스(Aurora 복제본) 추가하여 보조 클러스터를 확장할 있다. 세컨더리 클러스터는 읽기 전용이므로 단일 Aurora 클러스터에 대하여 일반적인 제한인 15개가 아닌 최대 16개의 읽기 전용 Aurora 복제본 인스턴스를 지원할 있다.

l  기본 DB클러스터에서 보조 Aurora DB 클러스터로의 빠른 복제 : Aurora Global Database에서 수행되는 복제는 기본 DB 클러스터의 성능에 거의 영향을 미치지 않는다. DB 인스턴스의 리소스는 애플리케이션 읽기/쓰기 워크로드 처리 전용이다.

l  리전 전체의 운영 중단으로부터 복구 : 보조 클러스터를 사용하면 기존 복제 솔루션보다 적은 데이터 손실( 낮은 RPO) 새로운 기본 AWS 리전에서 Aurora Global Database 보다 신속하게( 낮은 RTO) 가용 상태로 만들 있다.

 

 

Aurora Global Database 리전의 기본(Primary) Aurora 클러스터와 다른 리전의 보조(Secondary) Aurora 클러스터로 생성된다. Aurora 글로벌 데이터베이스는 Aurora 전용 스토리지 계층의 전용 인프라를 사용하여 리전 복제를 처리한다. 스토리지 계층의 전용 복제 서버가 복제를 처리하므로 시스템 로드 중에도 데이터베이스 성능을 저하시키지 않으면서 향상된 복구 가용성 목표를 달성할 있다. Aurora Global Database 물리적 스토리지 수준 복제를 사용하여 동일한 데이터 세트로 기본 데이터베이스의 복제본을 생성하므로 논리적 복제 프로세스에 대한 종속성이 제거된다. 아래 그림은 기본(Primary) 보조(Secondary) 리전에 걸쳐 있는 Aurora 클러스터가 있는 Aurora 글로벌 데이터베이스이다.

 

Aurora Global Database복제과정은 아래와 같다.

1.       Aurora 클러스터의 기본 인스턴스는 Primary 리전의 스토리지 노드, 복제본 인스턴스 복제 서버에 병렬로 로그 레코드를 보낸다.

2.       Primary 리전의 복제 서버는 로그 레코드를 Secondary 리전의 복제 에이전트로 스트리밍한다.

3.       복제 에이전트는 Secondary 리전의 스토리지 노드 복제본 인스턴스에 병렬로 로그 레코드를 보낸다.

4.       Secondary 리전의 복제 서버는 스토리지 노드에서 로그 레코드를 가져와 동기화 한다.

 

Aurora 스토리지 시스템은 단일 리전 내의 3 가용 영역에 걸쳐 6개의 데이터 복사본을 자동으로 유지 관리하고 데이터 손실 없이 정상적인 가용 영역에서 데이터베이스 복구를 자동으로 시도하므로 내구성과 가용성이 크게 향상된다. 쓰기 쿼럼은 6 복사본 4개의 승인이 필요하고 읽기 쿼럼은 보호 그룹의 6 구성원 3개이다. 데이터는 최종 사용자에 대한 성능 영향 없이 실시간으로 Aurora 사용하여 Amazon Simple Storage Service(Amazon S3) 지속적으로 백업된다.

 

아래 그림은 기본 리전에서 여러 보조 리전으로 물리적 스토리지 수준 아웃바운드 복제가 있는 Aurora 글로벌 데이터베이스를 나타낸다.

 

Aurora 글로벌 데이터베이스를 사용하여 보조 리전에서 최대 5개의 보조 리전과 최대 16개의 읽기 전용 복제본을 구성할 있다. 보조 클러스터는 기본 클러스터 다른 보조 클러스터와 다른 리전에 있어야 한다.

 

Aurora 글로벌 데이터베이스를 사용하면 장애조치에 대한 가지 접근 방식 중에서 선택할 있다.

l  관리형 계획 장애조치 : 기본 DB 클러스터를 Aurora 글로벌 데이터베이스의 보조 리전 하나로 재배치 한다. 기능을 사용하면 RPO 0(데이터 손실 없음)이고 다른 변경을 수행하기 전에 보조 DB 클러스터를 기본 클러스터와 동기화한다. 자동화된 프로세스의 RTO 일반적으로 수동 장애조치의 RTO보다 적다.

l  계획되지 않은 수동 장애조치 : 계획되지 않은 중단에서 복구하기 위해 Aurora 글로벌 데이터베이스의 보조 데이터베이스 하나로 교차 리전 장애조치를 수동으로 수행할 있다. 수동 프로세스의 RTO 계획되지 않은 중단에서 Aurora 글로벌 데이터베이스를 얼마나 빨리 수동으로 복구할 있는지에 따라 다르다. RPO 일반적으로 단위로 측정되지만 오류 발생 네트워크 전체의 Aurora 스토리지 복제 지연에 따라 다르다.

 

 Aurora Global Database사용시 수동 장애조치가 어떻게 이루어지는지 살펴보자.

 

기본 리전에서 Writer 인스턴스에서 읽기 쓰기를 수행하고 읽기 전용 복제본에서만 읽기를 수행하는 Aurora 클러스터에 연결된 애플리케이션과 보조 리전에서 읽기 전용 복제본에서 읽기만 수행하는 Aurora 클러스터에 연결된 애플리케이션이 있다. Amazon Route 53 (CNAME 레코드) 장애조치 재구성으로 인해 애플리케이션을 다시 연결하기 위해 수행해야 하는 수동 작업의 양을 최소화하기 위해 Aurora 리더 라이터 엔드포인트를 가리키도록 생성된다.

 

 

전체 지역의 인프라 또는 서비스를 기본 지역에서 사용할 없게 되거나, 잠재적은 성능 저하 또는 격리 문제가 발생할 경우, 보조 클러스터를 기본 클러스터로 승격하도록 수동으로 장애조치를 시작하거나 스크립트를 작성할 있다. 장애조치 RPO 의해 수량화된 잠재적 데이터 손실을 이해할 있어야 한다.

 

장애조치가 완료되면 승격된 리전(이전 보조 리전) 새로운 기본 Aurora 클러스터 역할을 하며 1 이내에 전체 읽기 쓰기 워크로드를 처리할 있으므로 애플리케이션 가동 시간에 대한 영향이 최소화된다. 이전 기본 리전의 인프라 또는 서비스를 사용할 있게 되거나 리전을 추가하면 계획되지 않은 중단 중에 애플리케이션에서 읽기 워크로드만 가져오는 새로운 보조 Aurora 클러스터 역할을 있다.

 

 

[참고자료]

l  Amazon Aurora Global Database  : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html

l  Cross-Region disaster recovery using Amazon Aurora Global Database for Amazon Aurora PostgreSQL : https://aws.amazon.com/blogs/database/cross-region-disaster-recovery-using-amazon-aurora-global-database-for-amazon-aurora-postgresql/

 

2022-07-24 / Sungwook Kang / http://sungwookkang.com

 

 

AWS, Aurora, Aurora Global Database, Cross-Region Replication, 오로라 글로벌 데이터베이스, 글로벌 장애조치

반응형

+ Recent posts