완전 관리형 DB
데이터가 다중 AZ 간에 복제되어 가용성이 높다.
DynamoDB는 클라우드 기본 기능이다. -> AWS 독점 서비스 - NoSQL DB - 트랜잭션 지원
사용 사례
초당 수백만 개의 요청을 처리, 수조 개의 행, 수백 TB의 스토리지를 갖는다.
성능은 한 자릿수 ms단위, 일관성 또한 높음 [v]
보안 관련 기능은 IAM과 통합되어 있다.(보안, 권한 부여, 관리 기능 포함)
비용이 낮고, 오토 스케일링 기능을 가지고 있다.
유지 관리나 패치 없이도 항상 사용할 수 있다.(DB를 프로비저닝할 필요 없음)
항상 사용할 수 있어 테이블을 생성해 해당 테이블의 용량만 설정하면 된다.
테이블 클래스 종류
DynamoDB는 DB가 이미 존재해 테이블만 만들면 된다.
DynamoDB의 읽기/쓰기 용량 모드 설정
DynamoDB Accelerator(DAX)
DynamoDB를 위한 고가용성의 완전 관리형 원활한 인메모리 캐시
왜 ElastiCache대신 DAX를 사용할까?
- DAX는 DynamoDB 앞에있고, 개별 객체 캐시와 쿼리와 스캔 캐시를 처리하는데 유용하다.
ex) 집계 결과를 저장할 때는 ElastiCache가 더 좋고
대용량의 연산을 저장할 때는 DynamoDB가 더 좋다.
- 두 서비스는 상호 보완적 성격을 가진다.
DynamoDB에 캐싱 솔루션 추가 -> DAX
DynamoDB의 스트림 처리
테이블의 모든 수정 사항에 대한 스트림을 생성할 수 있다.
DynamoDB Streams Kinesis Data Streams
보존기간: 24시간 보존기간: 1년
소비자 수 제한 있음. 더 많은 소비자 수
AWS Lambda 트리거를 사용하여 처리하거나 데이터 처리 방법이 더 많다.
DynamoDB Stream Kinesis 어댑터 사용 Lambda 함수
Kinesis Data Analytics
Kinesis Data Firehose
Glue Streaming ETL ,...
DynamoDB 글로벌 테이블
글로벌 테이블: 여러 리전간 복제가 가능한 테이블
ex: 테이블을 US와 AP에 두고 두 테이블은 양방향 복제가 가능하다.
DynamoDB TTL(Time To Live)
DynamoDB TTL: 만료 타임스탬프가 지나면 자동으로 항목을 삭제
DynamoDB의 재해 복구로 활용
DynamoDB와 S3 간 통합