AWS DynamoDB는 AWS에서 제공하는 비관계형 데이터베이스 서비스이다.
관계형 데이터베이스와 비관계형 데이터베이스에 대한 차이는 저번 포스트에서
간략히 이야기하였다.
AWS 서비스를 보다보면 완전관리형이라는 단어를 종종 볼 수 있을것이다.
완전관리형이란 내부적으로 서버/OS가 있지만 사용자에게는 드러나지 않으며, DB 솔루션 설치또한 필요 없이 바로 DB를 사용할 수 있다는 의미이다.
결론은 AWS에서 장비 운영, OS 설치 및 운영, 데이터베이스 솔루션 설치 및 운영까지 모두 담당한다는 이야기이다.
저번 포스트에서 NoSQL이라는 단어를 설명할 때 No + SQL 이라고 설명하였는데 Not Only SQL 이라는 의견도 있다고 하다.
Key-Value 형태로 이루어져있는데 이를 쉽게 설명하자면
Key | Value |
---|---|
이름 | 홍길동 |
생일 | 00.01.01 |
취미 | 분신술 |
이런식으로 데이터가 저장되어있는 것이다.
HTTP 프로토콜을 사용한다.
다른 DB 서비스들은 보통 TCP 기반으로 통신한다.
서버리스 이므로 프로비저닝할 필요 없이 사용한 만큼 가격을 지불하면 된다.
읽고 쓰는것이 매우 빠르다.
Auto-Scaling 기능 탑재로 확장이 단순하고 쉽다.
서버 장애 또는 가용 영역 중단시 내결함성(내구성)을 제공하기 위해
AWS 리전의 3개 시설에 분산하여 자동으로 데이터를 복구한다.
클러스터 In-memory 캐시로 10배 이상의 속도 향상을 보인다.
읽기 요청만 해당사항되며 쓰기요청은 불가능하다.
주로 데이터에 많은 읽기요청이 들어왔을경우 사용한다.
(애플리케이션 이벤트 등)
❗️관련 용어❗️
- In-memory : 데이터를 캐시에 보관하는 것
- 캐시(Cache) : 데이터를 임의에 장소에 미리 복사해놓아서 데이터에 접근할 때 미리 저장해 놓은 데이터로 빠르게 접근할 수 있게 도와주는 서비스
DynamoDB와 같은 완전관리형 NoSQL DB 이다.
이름 그대로 문서를 저장하는 데이터베이스이다.
Key-Value 형태로 데이터를 저장하며 특정리전에서만 사용이 가능하다.
비용은 노드 or EC2 인스턴스 당 비용을 지불하고 기본 가격이 최소
월 200$부터 시작이다.
DB자체에서 일일 백업을 관리하고 필요할 때 마다 복구가 가능하다.
MongoDB와 호환이 된다.