AWS NoSQL 관리형 서비스인 DynamoDB, DocumentDB에 대해서 먼저 알아보겠습니다.
DynamoDB는 AWS 내에서 직접 만들어져서 사용하던 서비스로
내부에서 서비스의 품질이 너무 괜찮다는 평이 많아 사용자에게 출시된 서비스로 알려져 있습니다.
DynamoDB를 간략하게 설명하면 아래와 같은 특징을 가지고 있습니다.
- NoSQL Database
- Serverless 서비스 - AutoScaling
- 10ms Latency 제공
- Multi - Master (Global Table)
- Multi - Region (Active - Active)
DynamoDB Key, Value 형태로 저장하고, 간단하게 테이블을 만들어서 쓸 수 있는 NoSQL로
Global Table을 통해 원하는 리전에 데이터를 실시간으로 복제하여 multi master로 사용할 수 있습니다.
DynamoDB는 Index에 대한 개념을 좀 잘 이해야합니다.
이 부분에 따라서 성능과 비용에 관한 부분이 결정되기 때문입니다.
먼저 LSI입니다.
partition key를 fix한 상태에서, 이 외의 컬럼에 대해서 Range Key = sort key로 주어 값을 가져오는 것으로,
메인 테이블에서 고민하는 것이 아니라 새롭게 내가 원하는 조건의 쿼리를 하기 위한 테이블을
Secondary Index로 생성하여서 원하는 조건으로 쿼리를 하여 가져오는 방식입니다.
단, LSI 는 용량이 10GB로 제한되어 있습니다.
GSI에 대해서 알아보도록 하겠습니다.
partition key, sort key까지 자유롭게 어떤 항목이든지 가져와
테이블을 생성한 후 원하는 조건으로 쿼리를 하여 가져오는 방식입니다.
따라서 정말로 원하는 모양의 테이블을 자유롭게 만들 수 있는 방식입니다.
GSI는 따로 용량에 대한 제한이 없습니다.
두 Index에 대해서는 다큐먼트에서 아래와 같이 비교하여 제공하고 있기 때문에 용도에 따라서 사용하시면 됩니다.
그런데 NoSQL하면 대표적으로 모두 MongoDB를 생각하게 됩니다.
이러한 MongoDB를 AWS에서 관리형으로 제공하는 서비스가 DocumentDB입니다.
초당 수백만건의 Request에도 밀리 세컨드의 레이턴시로 제공되며 기존 몽고DB의 2배 Throughput을 가지고 있습니다.
컴퓨팅과 분리된 저장 구조를 통해 두 계층이 모두 독립정으로 Scailing이 자유롭게 가능하며,
AWS에서 매니지드 해주기 때문에, OS패치, 빠른 세팅, 보안 백업등을 자동으로 제공하고 있습니다.
MongoDB 3.6 SDK 및 여러가지 tool을 똑같이 사용할 수 있기 때문에 기존 환경과 동일하게 적용할 수 있습니다.
마지막으로 Graph DB 관리형 서비스 Neptune입니다.
아마존 넵튠은 OLTP와 OLAP 애플리케이션을 모두 지원합니다.
넵튠의 특장점은 고가용성과 지속성으로,
1천억 노드, 엣지, 트리플 등이 자동으로 6개 복제본을 가지며, 3개의 가용성존에 분산되어 저장됩니다.
또한 계속해서 DB 데이터는 S3에 백업됩니다.
여러 가용성존을 오가더라도 10밀리초 안에 반복적으로 데이터를 읽을 수 있다는 점 또한
AWS 매니지드 서비스의 장점입니다.
여기까지 NoSQL, Graph DB의 관리형 서비스에 대해서 간략하게 알아봤습니다.
다음 포스트에서는 Cache에 대한 서비스에 관해 알아보도록 하겠습니다.
'AWS Intro > AWS Database Intro' 카테고리의 다른 글
AWS Database Intro - 4. ElasticCache (0) | 2020.03.19 |
---|---|
AWS Database Intro - 2. RDS (0) | 2020.03.17 |
AWS Database Intro - 1. AWS DB Service (0) | 2020.03.17 |