AWS Document DB

조민철·2025년 4월 2일

AWS

목록 보기
14/21
post-thumbnail

AWS Document DB

이번에는 Document DB에 대해 한번 알아보겠다. Document DB는 MongoDB 를 완벽하게 호환가능하며 NoSQL DB 이다. NoSQL 답게 스키마의 구조가 정해져 있지 않으며 JSON 형태로 데이터를 저장한다.

특징

  • 완전 관리형 서비스
    • 백업, 패치, 유지보수 자동화 사용자가 일일이 서버를 관리할 필요가 없음
    • 클러스터 노드 기반으로 구성
    • 기본적으로 3개의 Multi-AZ 에 데이터를 복제함
  • 높은 가용성 과 확장성
    • 스토리지 자동 확장 최대 128TB 까지 스토리지 확장
    • Read 인스턴스 (Replica) 추가 기능
    • Auto Healing 지원
  • 백업 및 복구
    • 기본적으로 매일 자동 백업 기능 지원
    • 수동 스냅샷 지원
    • Point-in-Time 복구 가능

등등 많은 기능들을 지원한다.

클러스터

Document DB는 서버리스 형태가 아닌 클러스터로 움직인다.

클러스터로 움직인다는 것은 스토리지와 컴퓨팅 자원을 분리하여 동작한다는것이다.
클러스터의 구성요소는 다음과 같다.

  • Cluster Volume
    • SSD 기반의 분산 스토리지이며 3개의 Multi-AZ에 걸쳐 6개의 복사본으로 저장한다.
    • 총 128TB 까지 자동으로 확장됨.
  • Primary instance
    • 클러스터 리드 인스턴스 읽기/쓰기 가능
  • Replica instance
    • 읽기 전용 복제본 (최대 15개 생성 가능)
    • 비동기적으로 업데이트

인스턴스(컴퓨팅)과 스토리지 계층을 분리하여 운영한다면 무슨 장점이 있을까?
인스턴스와 스토리지 리소스를 독립적으로 확장할 수 있는 장점이 제일 크게 와 닫는거같다. 인스턴스+스토리지 형식으로 되어있다면 용량을 늘리고 싶어도 인스턴스도 같이 늘려야 하는 장점이 있다. 이는 곧 비용상승으로 좋은 경험을 주지 못하는거 같다.

데이터 복제 및 Faliover


평소의 Document DB는 Primary 인스턴스와 Replica 인스턴스가 서로 비동기 복제를 하여 데이터를 관리한다.


하지만 Primary 인스턴스에 장애가 발생하여 사용하지 못하는 상황이 발생한다면...


다음과 같이 N개의 Replica 인스턴스중 하나를 Primary로 승격시켜 자동으로 Faliover가 된다. (각 읽기 복제본에 우선 순위를 정해 우선순위가 가장 낮은 복제본이 Primary 로 승격된다.)

Document DB vs MongoDB

Document DB 와 MongoDB 는 어떤 차이점이 있는가..?

기능AWS DocumentDBMongoDB
트랜잭션❌ 미지원✅ 지원 (MongoDB 4.0+에서 multi-document ACID 트랜잭션)
Change Streams❌ 미지원✅ 지원
Oplog (운영 로그)❌ 미지원✅ 지원
Sharding (샤딩)❌ 미지원✅ 지원
스토리지 자동 확장✅ 지원❌ 직접 관리 필요
읽기 확장성✅ Replica 지원 (최대 15개)✅ Replica Set 지원
백업 및 복구✅ 자동 백업, PITR 지원❌ 직접 설정 필요
IAM 인증✅ 지원❌ 미지원
AWS 네이티브 서비스 통합✅ (CloudWatch, CloudTrail, IAM 등)❌ 없음

저도 프로젝트 할때 MongoDB 와 DocumentDB 둘다 사용해본 입장으로서..MongoDB는 말그대로 물리서버에 돌아가고 Replica set 등 많은 옵션들을 일일이 설정해야한다. 반대로 DocumentDB는 딸깍 한번이면 만들어지고 자동으로 다 해준다. 물론 돈을 내야한다는 점이 있다.

profile
기록의 힘은 대단하다

0개의 댓글