[Database] Amazon DynamoDB란?
Amazon DynamoDB
- key-value형 NoSQL 데이터베이스
- 일반 RDB의 확장성 극복하기 위해 만든 데이터베이스
개념
- Table: Item의 모음
- Item: Key와 하나 이상의 Attribute
- Attribute: Name, Value 가짐
특성
- SNS, 게임, 미디어, IoT 등 웹 규모 애플리케이션에 적합
- 스키마가 없음 → 각 테이블은 각 데이터 항목을 식별하는 기본 키 필요
- 분산 하드웨어 클러스터를 통해 확장 가능
- 요금: (1) 시간당(처리량) 요금 (2) 스토리지(GB)당 요금
- 한 번 생성된 인덱스 삭제 불가
- 하나의 아이템은 하나 이상의 속성 가질 수 있음
장점
- 별도로 설치, 버전 관리 할 필요 없음
- 저장 공간 용량 제한이 없음
- 사용량만큼 요금 부과
- 온 디맨드 백업 기능 제공
- 데이터 규모에 관계 없이 데이터 저장 및 검색, 어떤 수준의 요청 트래픽이라도 처리 가능한 데이터베이스 테이블 생성 가능
단점
- 여러 데이터 삽입 시 개수 제한 있음
- 보조 인덱스 생성 시 데이터 수가 많지 않음에도 느린 편
- 쿼리 제한적
기본 키
- Hash Key: Hash Key 단위로 데이터 식별 가능한 경우 사용
- Hash Key + Range Key: Hash Key에 해당하는 여러 데이터에서 Range Key로 검색 가능
- Local secondary index
- Hash primary key
- Global secondary index
사용
- 테이블의 Key와 Index 정하고 Read/Write 처리량 정함
- 동작은 HTTP API로 제공
- PutItem
- UpdateItem
- GetItem
- DeleteItem
- BatchWriteItem
- BatchGetItem
- CreateTable
- DescribeTable
- UpdateTable
- DeleteTable
- Query (Hash + 범위 키 조회)
- Scan (전체 테이블 조회)