AWS의 NoSQL 서비스는 DynamoDB와 DocumentDB 두가지가 있습니다.
두 서비스는 동일한 데이터베이스 범주에 속하지만 여러면에서 차이가 있습니다.
각 AWS NoSQL 데이터베이스에 대해서 간략하게 살펴보겠습니다.
DynamoDB
DynamoDB는 AWS에서 관리되는 NoSQL 데이터베이스 서비스 입니다.
원활한 확장성과 빠른 성능을 제공하며, 관리부담을 줄일 수 있습니다.
하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또는 클러스터 크기 조정에 대해 걱정할 필요가 없게 합니다.
쉽게 말해, DynamoDB는 서버리스 서비스로 관리자가 인프라를 구성할 필요가 없습니다.
AWS Console에서 바로 사용할 수 있는 테이블을 생성하고 읽기/쓰기 용량 설정을 구성합니다.
때문에 확장성이 좋고 비용이 적게 발생합니다.
DynamoDB는 25GB 스토리지를 무료로 제공하며, 읽기/쓰기 용량에 따라 비용이 산정됩니다.
DynamoDB도 MongoDB를 기반으로 만들어졌다고 합니다.
하지만 애플리케이션과 연결할 때에는 AWS SDK를 사용합니다.
개발자는 데이터베이스 설정이 아닌 코드에만 집중할 수 있습니다.
DynamoDB에 대한 자세한 설명은 아래 AWS docs를 참고해주세요.
https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Introduction.html
DocumentDB
Amazon DocumentDB(MongoDB 호환)는 빠르고 안정적인 완전 관리형 데이터베이스 서비스입다.
Amazon DocumentDB를 사용하면 클라우드에서 MongoDB 호환 데이터베이스를 쉽게 설정, 운영 및 확장할 수 있습니다. Amazon DocumentDB를 사용하면 동일한 애플리케이션 코드를 실행하고 MongoDB에서 사용하는 것과 동일한 드라이버 및 도구를 사용할 수 있습니다.
DocumentDB의 가장 큰 특징은 MongoDB와 호환된다는 것입니다. 때문에 기존 MongoDB를 사용하는 대부분의 애플리케이션은 변경 없이 DocumentDB를 사용할 수 있습니다.
DocumentDB 클러스터를 생성하려면 DB 인스턴스 클래스, 노드 수, VPC 및 인증과 같은 여러 파라미터를 선택 합니다. 인스턴스가 시작된 후 DocumentDB는 서버와 일부 운영 작업을 관리합니다.
DocumentDB를 사용하는 것은 하나의 서버를 사용하는 것이기 때문에 사용량이 아닌 서버에 대한 비용을 지불해야합니다.
데이터베이스 설정을 모두 신경써야 하지만 MongoDB에서 이전하기 쉽다는 장점이 있습니다.
DocumentDB에 대한 자세한 설명은 아래 AWS docs를 참고해주세요.
https://docs.aws.amazon.com/documentdb/latest/developerguide/what-is.html
DynamoDB 와 DocumentDB 공통점
- NoSQL Database
- AWS Database Migration Service를 통해 데이터 마이그레이션을 위한 이식성을 제공
- AWS Key Management Service를 통한 저장 데이터 암호화와 보안기능을 제공
- 관리 API 호출과 CloudFormation에 대한 CloudTrail 및 VPC Flow Logs로 감사 기능 제공
DynamoDB 와 DocumentDB 차이점
차이점을 하나로 요약하면 DynamoDB는 서버리스 / DocumentDB는 서버 라는 것입니다.
DynamoDB | DocumentDB | |
리전 | 모든 리전에서 사용가능 | 오항이오, 버지니아, 아일랜드, 프랑크푸르트, 오레곤 등 특정 리전에서만 사용가능. |
자걱증명 | AWS Identity and Access Management(IAM)를 통해 데이터베이스에 대한 액세스를 제어 | 데이터베이스에서 User를 생성하고 관리. 자격증명이 DB에 직접 저장되기 때문에 AWS는 이 영역에 관여하지 않음. |
금액 | 최소 월 1$ 서버리스 서비스로 사용량에 따라 요금이 책정. 주요 비용은 읽기/쓰기 용량 단위. 비용을 예상하기 어려움. 스토리지 25GB를 무료로 제공 |
최소 월 200$ 노드 또는 EC2 인스턴스당 비용을 지불. 데이터베이스의 일부 인스턴스만 사용하거나 몇시간만 사용하더라도 전체 요금을 지불해야함. 스토리지는 무료로 제공되지 않음. |
백업 | 매일 백업을 사용할 수 없어 사용자가 백업을 진행. 데이터에서 지원하는대로 필요할 때 데이터를 복구할 수 있음. |
데이터베이스 자체에서 일일 백업을 관리하고 필요할 때 마다 복구할 수 있음. 모든 유형의 백업이 지원됨. |
두가지 서비스 모두 장단점이 있습니다.
데이터가 많지 않고 새롭게 구축되는 서비스라면 DynamoDB를
기존 MongoDB에서 이전하거나 데이터가 많은 서비스라면 DocumentDB를 사용하면 될 것 같습니다.
참고
https://www.educba.com/documentdb-vs-dynamodb/
https://searchaws.techtarget.com/tip/DocumentDB-vs-DynamoDB-Compare-AWS-NoSQL-databases
https://stackoverflow.com/questions/17931073/dynamodb-vs-mongodb-nosql
'AWS' 카테고리의 다른 글
[AWS] DynamoDB - CRUD 코드 작성 (with Node.js) (0) | 2021.12.08 |
---|---|
[AWS] DynamoDB - 테이블 생성하기 (0) | 2021.12.08 |
[AWS] Mysql Lambda 생성하기 (0) | 2021.10.18 |
[AWS] Cognito - 회원가입 (with Node.js) (0) | 2021.10.18 |
[AWS] Cognito - 사용자 풀 생성하기 (0) | 2021.10.18 |