Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

Aurora Cross Region Replica 와 Global database 의 특징 본문

AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식

Aurora Cross Region Replica 와 Global database 의 특징

`O` 2023. 5. 15. 17:35
728x90
반응형

해당 페이지에서는 서로 다른 Region 간 Aurora Cluster 를 사용 할 때 쓰는

Cross Region Replica 와 Global Database 의 차이에 대해서 다룬다.

 

해당 내용은 아래의 URL 들을 참조한다.

 

[1] https://aws.amazon.com/rds/aurora/faqs/?nc1=h_ls 

 

[2] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Replication.html

 

[3] https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html

 

또한 이 내용은 아래의 이전 게시글과 연관되어 있다.

 

[4] 2023.05.12 - [DB 관련 지식/DB 기본 개념] - Physical Replication 과 Logical Replication

 

 

Aurora Cross Region Replica 및 Global database 공통점

 

일반적으로 기능은 여러 Region 간의 데이터들을 동기화 시키기 위해 구현된 기능이다.

On-premise 에서는 이를 각기 다른 나라의 서버에서 구현 동기화시, 매우 멀리 떨어져 있는 지리적인 특성상

동기화 지연이 필연적으로 발생한다.

 

AWS 에서는 내부적인 설계를 통하여 이를 최소화할 있는 메커니즘이 있기에 기능을 공식 기능으로 제공한다.

 

 

Aurora Cross Region Replica 와 Global database 의 특징 (차이점)

 

위의 기능적인 목적의 공통점 이외에 Cross Region Replica 와 Global Database 는

아래와 같은 측면에서 서로 다른 특징을 보인다.

 

생성 방법

 

- 인스턴스 생성 메뉴에서 Cross Region Replica 는 'Create cross-Region read replica' 를,

Global database 는 Add AWS Region 을 사용한다.

 

출처 : 본인 테스트 화면

 

생성 후 결과 화면

 

- 아래 화면과 같이 Cross Region Replica 가 생성된 region 을 직접 선택해야 확인 할 수 있다.

 

출처 : 본인 테스트 화면

 

- 그러나 Global database 는 아래 화면과 같이 Primary, Secondary Cluster 라 하여 서로 독립된 Cluster 이 하나로 묶인 구조임을 확인 할 수 있다.

 

출처 : 본인 테스트 화면

 

Cluster 연결 관계

 

- 위의 화면에서 확인할 수 있듯이 Cross Region Replica 들은 특정 Region 의 Writer 를 중심으로 구성되는 것을 확인 할 수 있다. 그러나 Global database 는 인스턴스 단위가 아닌 Cluster 단위로 동기화가 되고 이를 Primary Cluster 중심으로

구성하는 것을 볼 수 있다.

 

Failover 방식

 

- 위의 구성 차이에 따라 Failover 또한 차이를 보이는데 Cross Region Replica 는 일반적으로 수행되는 Aurora Cluster 의 Failover 과정이 아닌 promote 라 하여 독립적인 cluster 로 만든 후 이를 사용하는 방식을 따르게 된다. 즉, 기존에 writer 로 이용하던 instance 가 소속된 cluster 와 분리가 먼저 선행되어야 한다. 이러한 특성으로 인하여, reader 로 사용되던 cluster 가 writer 가 되면 기존에 writer 로 사용하던 region 으로 나중에 다시 failover (failback) 가 불가능하다. 이 때는 다시 read replica 를 기존 region 에 만든 후 위의 과정을 거쳐야 한다.

 

Global database 는 failover 시, 단일 cluster 의 instance 단위가 아닌 cluster 단위로 primary, secondary 가 바뀐다.

이는 위의 Document [3] 에서 화면 예시가 나와 있다. 

 

동기화 방식

 

- 동기화 방식에서도 큰 차이가 있는데, 이 내용은 위의 게시글 [4] 를 참조 후, 확인하면 좋다.

Document 에 따르면 Cross Region Replica 는 MySQL, PostgreSQL 구분 없이 logical replication 을 사용한다.

이 때, MySQL 은 logical replication 사용 시, binlog 동기화를, PostgreSQL 은 엔진 자체가 지원하는 logical replication 을 사용한다.

 

이와 달리, Global Database 는 page (data block) 단위의 내용을 그대로 동기화 시키는 physical replication 을 사용한다.

 

지원 영역

 

현재, Aurora PostgreSQL 에서는 Cross Region Replica 기능을 지원하지 않는다.

Aurora MySQL 에서는 둘다 사용 가능하다.

 

정리

 

이와 같이 위의 두 기능은 비슷해 보이면서도 서로 다른 차이점을 보인다.

그렇기에 위의 차이점을 파악하고 현재 시점에서 비용 및 기타 지원 영역들을 고려해서 둘 중 어떤 게 적절한지 선택 하는게 좋다.

 

물론, 개인적으로는 자체적으로 failover 기능을 지원하고 동기화 지연 가능성이 더 낮은 physical replication 을 사용하는 global database 가 비용을 감당 할 수 있다면 더 좋은 선택이 될 것이라고 본다.

 

반응형
Comments