RDS, DocumentDB 는 Readreplica 생성시 다운타임이 발생하나요?

RDS, DocumentDB 는 Readreplica 생성시 다운타임이 발생하나요?

TL;DR

  • RDS의 경우 single-az에 스냅샷을 한번도 생성한적이 없으면 I/O 지연이 발생할 수 있음
  • Aurora, Document DB 는 공유스토리지 덕분에 single instance인 경우에도 순단이 발생하지 않음.

Readreplica, 읽기 부하 분산

RDS, Document DB 등 AWS에서 제공하는 관리형 DB는 Readreplica를 손쉽게 만드는 기능을 제공합니다.

rds-readreplica

‘읽기복제본’이라는 이름처럼 이렇게 생긴 복제본은 읽기 전용이기 때문에 쓰기 부하분산은 불가능하지만 읽기 부하는 충분히 분산시킬 수 있습니다. 그래서 수평확장이 어려운 DB에 그나마 읽기 성능만이라도 수평확장하기 위해서 많이 사용하죠.

그런데…

혹시 읽기복제본 생성시에 순단이 발생하나요?

얼마 전 이런 질문을 받았습니다.

‘에이 설마…’ 라고 생각했지만, 그래도 운영중인 서버기 때문에 확인이 필요했습니다. 급하게 AWS 문서를 뒤져봤고 문서에서도 뭔가 ‘순단따윈 없습니다’ 라는 명백하고 시원한 문구가 안보여 support 엔지니어에게 물어보기로 했습니다.

(서포트 케이스 내용)

나: RR 만들때 순단 없어?
AWS: 응 없어.
(아니 그렇게 단호하게..?)
나: 아니… 문서보니깐 RDS는 snapshot 이용해서 readreplica 만든다고 되어 있고, snapshot 만들때 뭔가 하드웨어적으로 부하가 발생할것 같은데 정말 없어…?
AWS: 응 없어.

단호한 AWS 서포트 엔지니어의 말은 뭔가 부실해보였지만 다음과 같은 나름의 이유를 갖고 있었습니다.

AWS 서포트 엔지니어가 답변한 내용을 정리해보면…

1.Single-AZ로 구성된 RDS의 경우 I/O Suspension이 발생할 수 있음.

single AZ로 설정되어 있는 경우 snapshot 생성시에 I/O 중단(suspension)이 발생할 수 있지만 생성된 스냅샷이 있으면 증분식으로 스냅샷이 생성되므로 괜찮고, I/O 중단이 발생하더라도 DB가 중단되지는 않음.

근데 사실 이 I/O Suspension이 되면 거의 DB가 일을 못하기 때문에 중단이라고 봐도 되지 않을까 싶네요.

2.Multi-AZ로 설정되어 있는 경우 마스터가 아닌 stand-by 인스턴스에서 스냅샷을 생성하기 때문에 master에 영향 없음

이래서 multi-az가 중요합니다. multi-az 안쓸거면 사실 RDS 쓸 이유가 거의 없습니다.

3.Aurora 사용시 Master에 영향 없음

Aurora는 공유 스토리지를 사용하는 아키텍처이고 따라서 readreplica 생성시에 스냅샷을 사용하지 않음. 결국 master에 영향 없음.

4.DocumentDB도 공유 스토리지를 사용하므로 마찬가지.

DocumentDB의 강점도 역시 공유스토리지. 공유스토리지에 따른 이점으로 readreplica생성이 자유롭습니다.

즉, 웬만한 운영환경에서는 Readreplica 생성한다고 DB에 중단이 생기지는 않습니다.

그럼 끝.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×