
들어가며
지금까지 Amazon RDS와 DynamoDB를 통해 관계형 데이터베이스(RDB)와 Key-Value 기반 NoSQL 데이터베이스를 살펴보았습니다.
하지만 실제 서비스에서는 사용자 프로필, 상품 정보, 게시글처럼 구조가 자주 변경되거나 다양한 형태의 데이터를 저장해야 하는 경우도 많습니다. 이러한 데이터를 관계형 데이터베이스의 고정된 스키마로 관리하면 컬럼을 추가하거나 테이블 구조를 변경해야 하는 부담이 발생할 수 있습니다.
AWS에서는 이러한 문서(Document) 형태의 데이터를 저장하기 위해 Amazon DocumentDB를 제공합니다.
이번 글에서는 Amazon DocumentDB의 개념과 특징, MongoDB와의 관계, DynamoDB와의 차이, 그리고 어떤 서비스에서 활용되는지 알아보겠습니다.
1. Amazon DocumentDB란?

Amazon DocumentDB는 JSON 형태의 문서(Document)를 저장하는 AWS의 완전관리형 NoSQL 데이터베이스 서비스입니다.
DocumentDB는 MongoDB와 호환되는 API를 제공하여 기존 MongoDB 애플리케이션을 비교적 쉽게 이전할 수 있도록 설계되었습니다.
관계형 데이터베이스처럼 행(Row)과 컬럼(Column)으로 데이터를 저장하는 것이 아니라, 하나의 문서(Document)에 필요한 정보를 함께 저장합니다.
예를 들어 사용자 정보를 저장하면 다음과 같은 형태가 됩니다.
{
"userId": "user001",
"name": "Kim",
"age": 28,
"address": {
"city": "Seoul",
"zip": "06234"
},
"hobbies": [
"Running",
"Photography"
]
}
이처럼 하나의 Document 안에 객체와 배열을 함께 저장할 수 있습니다.
2. DocumentDB가 필요한 이유
관계형 데이터베이스에서는 새로운 정보를 저장하려면 컬럼을 추가해야 하는 경우가 많습니다.
예를 들어 처음에는
| user_id | name |
| user001 | Kim |
만 저장하다가
취미(Hobby)를 추가하려면
ALTER TABLE users
ADD hobby VARCHAR(100);
처럼 테이블 구조를 변경해야 합니다.
반면 DocumentDB에서는
{
"userId": "user001",
"name": "Kim",
"hobby": "Running"
}
처럼 필요한 필드만 추가하면 됩니다.
즉, 모든 Document가 동일한 구조를 가질 필요가 없습니다.
3. DocumentDB의 특징

3-1) 스키마가 유연하다.
- 모든 문서가 동일한 필드를 가질 필요가 없습니다.
3-2) JSON 기반 저장
- 객체와 배열을 그대로 저장할 수 있습니다.
3-3) MongoDB API 호환
- MongoDB 드라이버를 그대로 사용할 수 있습니다.
3-4) AWS 완전관리형 서비스
- 백업, 패치, 장애 복구 등을 AWS가 자동으로 관리합니다.
3-5) 높은 확장성
- 스토리지와 읽기 성능을 쉽게 확장할 수 있습니다.
4. MongoDB와의 관계
많은 사람들이 DocumentDB를 MongoDB와 동일한 서비스라고 생각하지만, 둘은 다릅니다. MongoDB는 MongoDB Inc.에서 개발한 문서형 데이터베이스입니다.
반면 Amazon DocumentDB는 MongoDB API와 호환되도록 AWS에서 자체 개발한 데이터베이스 서비스입니다.
MongoDB를 그대로 AWS에서 운영하는 것이 아니라 MongoDB와 호환되는 AWS 서비스라고 이해하면 됩니다.

- 기존 애플리케이션이 MongoDB 사용
- 고객 애플리케이션이 온프레미스(On-Premises) 환경의 MongoDB 데이터베이스에 연결하여 데이터를 저장하고 조회합니다.
- 기존 MongoDB 데이터 읽기
- AWS 마이그레이션 환경이 기존 MongoDB에 접근하여 이전할 데이터를 읽어옵니다.
- EC2에서 마이그레이션 수행
- AWS EC2 인스턴스에서 마이그레이션 프로그램을 실행하여 MongoDB의 데이터를 Amazon DocumentDB로 전달합니다.
- Amazon DocumentDB에 데이터 저장
- EC2가 전달한 데이터를 Amazon DocumentDB에 저장하여 기존 MongoDB 데이터를 AWS의 완전관리형 DocumentDB로 이전합니다.
- 애플리케이션 연결 대상 변경
- 데이터 이전이 완료되면 애플리케이션의 데이터베이스 연결을 MongoDB에서 Amazon DocumentDB로 변경하여 서비스를 운영합니다. MongoDB API와 호환되므로 비교적 적은 수정으로 이전할 수 있습니다.
5. DynamoDB와의 차이
| 항목 | DocumentDB | DynamoDB |
| 저장 방식 | Document(JSON) | Key-Value |
| 데이터 구조 | 계층형 데이터 | 단순 Key 기반 |
| 조회 방식 | 다양한 필드 조회 | Partition Key 중심 |
| 스키마 | 유연 | 유연 |
| 적합한 데이터 | 게시글, 사용자 정보 | 세션, 장바구니 |
DynamoDB는 "데이터의 위치를 알고 바로 찾아가는 데이터베이스"이고, DocumentDB는 "문서 내부의 다양한 속성을 검색하여 원하는 데이터를 찾는 데이터베이스"입니다.
7. 언제 사용할까?
다음과 같은 경우라면 DocumentDB가 적합합니다.
- JSON 데이터를 그대로 저장하고 싶은 경우
- 객체와 배열을 함께 저장해야 하는 경우
- 필드가 자주 변경되는 경우
- MongoDB 기반 서비스를 AWS에서 운영하려는 경우
반대로 JOIN이 많거나 트랜잭션 중심 서비스라면 RDS가 더 적합하며, Key 기반의 초고속 조회가 필요하다면 DynamoDB가 적합합니다.
8. RDS · DynamoDB · DocumentDB 비교

| 항목 | RDS | DynamoDB | DocumentDB |
| 데이터 구조 | 관계형 | Key-Value | Document(JSON) |
| 스키마 | 고정 | 유연 | 유연 |
| JOIN | 가능 | 불가능 | 불가능 |
| 저장 형태 | Row | Item | Document |
| 대표 활용 | 금융, ERP | 세션, 캐시 | 프로필, 게시글 |
각 서비스는 경쟁 관계가 아니라 데이터 특성에 따라 함께 사용하는 경우가 많습니다.
9. 마치며
이번 글를 정리하며 Amazon DocumentDB는 단순한 NoSQL 데이터베이스가 아니라 JSON 형태의 문서를 유연하게 저장하고 관리하기 위한 AWS의 완전관리형 문서 데이터베이스 서비스라는 점을 이해할 수 있었습니다.
또한 MongoDB와 호환되는 API를 제공하지만 AWS에서 자체 개발한 서비스라는 점과, 관계형 데이터베이스처럼 고정된 스키마를 사용할 필요 없이 문서마다 서로 다른 구조를 가질 수 있다는 특징도 알게 되었습니다.
RDS는 관계형 데이터와 트랜잭션이 중요한 서비스에, DynamoDB는 Key 기반의 대용량 실시간 처리에 적합하다면, DocumentDB는 구조가 자주 변경되는 JSON 데이터를 유연하게 저장해야 하는 서비스에 적합합니다. 데이터의 특성과 조회 방식에 맞는 데이터베이스를 선택하는 것이 안정적인 시스템을 설계하는 중요한 요소라는 점을 배울 수 있었습니다.
'Data Engineering > AWS' 카테고리의 다른 글
| Amazon Redshift - Spectrum, Durability, Scaling (0) | 2026.07.02 |
|---|---|
| Amazon Redshift란? (0) | 2026.07.02 |
| Aurora란? (0) | 2026.07.01 |
| Amazon RDS란? ACID, Lock, Deadlock까지 알아보기 (0) | 2026.06.30 |
| DynamoDB Streams란? Lambda와 함께 실시간 이벤트 처리하기 (0) | 2026.06.30 |