Cloud

Amazon RDS - Read Replica와 Multi AZ 비교

Operation CWAL 2021. 11. 7. 00:16

Read Replica

데이터베이스에서 Read Replica는 Read/Write 모두 가능한 Master DB 인스턴스에 비해 SELECT 쿼리와 같은 Read 작업만 수행가능한 인스턴스이다. Read Replica로의 Write 작업은 허용하지 않는다.

 

RDS에서 제공하는 Read Replica는 다음과 같은 특성을 갖는다. 

  • Read Replica를 최대 5개까지 추가할 수 있음
  • 동일 AZ, Cross AZ, Cross Region 가능
  • 비동기 방식의 Replication
    • 짧은 시간 동안 Replica와 Master 간의 데이터 차이가  발생할 수 있음 
  • Read Replica를 Master DB로 변경할 수 있음(Promotion)

 

참고로 어플리케이션 레벨에서 Read Replica를 활용하기 위해선 내부적으로 사용하는 DB Connection String(ex: mydb.123456789012.us-east-1.rds.amazonaws.com)의 업데이트가 필요하다.

 

Use Case

같은 데이터베이스에 대해 하나는 읽기/쓰기 작업이 모두 이루어지는 어플리케이션(ex: Production), 다른 하나는 읽기 작업만 수행하는 어플리케이션(ex: Reporting)이 있다고 가정하자. Production에 미치는 성능적 악영향을 최소화하면서 Reporting을 수행하기 위해선 Read Replica가 가장 최적의 솔루션이라고 할 수 있다.

 

데이터 전송 비용

AWS는 일반적으로 AZ가 다를 경우, 데이터 전송시 네트워크 비용이 발생한다. 하지만 RDS는 같은 Region 내에서 Replication 작업 수행시 비용이 청구되지 않으며, Region이 다를 경우(Cross Region)에만 네트워크 비용이 발생한다.

 

 

Multi AZ

RDS Multi AZ는 DR(Disaster Recovery)을 위해 서로 다른 AZ에 2개 이상의 Master DB를 배치하는 것을 의미한다. Read Replica의 주된 목적이 Load Balancing인 것과 달리 보다 높은 가용성을 얻기 위해 사용된다. Active - Standby 방식으로 동작하며, 단일 DNS 이름을 사용하되 장애 발생시 Standby 상태의 Master DB로 접근하는 Failover가 자동으로 이루어진다. 이러한 이유로 기존 어플리케이션에서 따로 수정할 사항은 없다.

그리고 위에서 이미 설명한 내용이지만 DR을 위해 Read Replica를 Master DB로 변경할 수 있다.

 

Single AZ를 Multi AZ로 변경하기 위해선, RDS 메뉴에서 몇번의 클릭이 전부다. 별도의 다운타임은 발생하지 않으며 DB를 정지시킬 필요도 없다. 다만 내부적으로 다음과 같은 일련의 작업이 자동으로 수행된다.

  1. 기존 DB의 스냅샷 생성
  2. 해당 스냅샷으로부터 다른 AZ에 새로운 DB 생성
  3. 양 DB 간에 동기화 수행

'Cloud' 카테고리의 다른 글

Azure - Virtual Network Peering  (0) 2022.03.04
Container 101 - (1) Introduction  (0) 2022.01.10
Amazon RDS - 개요  (0) 2021.11.05
Container Vs. VM  (0) 2021.06.26
Amazon EKS Tutorial - Part.6  (0) 2021.03.22