AWS

[AWS] RDS - Multi AZ, Read Replicas

어코링 2024. 2. 11. 15:42

Multi AZ

⁂ 원래 존재하는 RDS DB에 무언가 변화(eg. Write)가 생길때 다른 Availability Zone에 똑같은 복제본이 만들어짐 = Synchronize

⁂ AWS에 의해서 자동으로 관리가 이루어진다. (No admin intervention)

⁂ 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ의 복제본이 사용됨

Multi AZ는 복제본을 만든다고해서 성능이 좋아지는 것은 아니다.

 Disaster Recovery Only !

성능 개선을 위해서 사용되지는 않음.

따라서 성능 개선을 위해선 Read Replica가 사용되어져야함.

3개의 EC2 Instance가 하나의 프로덕션 RDS DB에 연결되어 쓰기 기능이 실행된다고 가정해보자.

쓰기 기능이 실행된후 똑같은 복제본이지만 다른 AZ에 쓰여지게된다. RDS Production의 Endpoint가 ~2A에서 ~2B로 

~2A가 어떤 문제가 생긴다면 RDS는 ~2B를 자동으로 failover를 시키게된다.

무언가를 새로 만들거나 해비 워크가 필요 없기 때문에 재해가 생길 시 그 재해 복구 시간이 현저히 감소된다.

Read Replica

 Production DB의 읽기 전용 복제본이 생성됨 (쓰기불가)

 주로 Read-Heavy DB작업시 효율성의 극대화를 위해 사용됨 (Scailing) 

수많은 유저들이 한 페이지에 접속하면 서버다운이 일어날 수도 있는 것을 Read Replica를 사용해서 방지

 Diasater Recovery 용도가 아님 ! (Multi AZ와 달리)

 최대 5개 Read Replica DB 허용

 Read Replica DB 허용

 Read Replica는 Read Replica에서 생성 가능 (단 Latency 발생)

 각각의 Read Replica는 자신만의 고유 Endpoint 존재

 

✡ RDS DB는 IP 주소가 아닌 Endpoint로 그들의 정체를 가려낼 수 있다

 

EC2 Instance로 부터 쓰기 작업이 실행될 시 Read Replica에 의해 똑같은 RDS 복제본이 생성이 된다.

쓰기 작업도 복제본에 그대로 쓰이게 된다.

 

eg 대부분의 인커밍 트래픽이 Read Traffic이라고 가정한다면,

Read Traffic이란 대부분의 유저들이 DB에서 무언가를 읽고 싶어 하는 것

그렇다면 메인 프로덕션 DB로 모두 연결시키는 것이 아니라 하나의 EC2 Insance를 각각의 Read Replica로 연결시킬수 있다.

따라서 메인 DB의 워크로드를 현저히 낮출 수 있으며 성능 개선 효과도 누릴 수 있는 것

또한, Read Replica에 Read Replica 생성도 가능합니다.

이것을 다른 AZ에 만들 수 있고 같은 AZ에 생성할 수도 있다.