DynamoDB Overview
- 100% 클라우드에 기반한 AWS 독점 기술
- 관리형 NoSQL 데이터베이스로 서비리스이면서 용량 프로비저닝 뿐만 아니라 오토 스케일링 기능이 존재
- 2018년 기준 온디맨드 용량 사용이 가능해졌으며 워크로드를 기반으로 확장하며 최적의 가격과 성능을 제공
- ElastiCache를 대신해서 키-값 스토어를 저장할 수 있으며
세션 데이터를 저장할 경우 이를 사용하면 서버리스 특징 때문에 ElastiCache 프로비저닝 및 유지 관리를 신경 쓸 필요가 없음
- 1~9ms 성능을 가지며 액세스하기 좋은 키-값 스토어로 세션 데이터 저장에 적합
- 가용성이 높고 기본적으로 다중 AZ를 지원하며 읽기와 쓰기 기능이 분리되어 읽기 및 쓰기 용량 단위를 공급할 수 있음
- 캐싱 기술이 필요한 경우 DAX를 활성화해 DynamoDB의 가속 클러스터로 사용해 읽기 캐시를 제공하여 읽기 횟수를 줄임
- 분산 데이터베이스라서 읽기에 두 가지 옵션이 존재하며
이는 오래된 데이터까지 포함해서 모든 데이터를 승인할지, 항상 최신 데이터만 승인할 지 선택
1) 최종적 일관된 읽기 모드 (eventually consistent)
2) 강력한 일관된 읽기 모드 (strongly consistent)
- 보안과 인증, 권한 부여는 모두 IAM을 통해 이루어지며 한 곳에서 DynamoDB 보안을 전부 관리할 수 있어 편리
- DynamoDB Stream을 이용해 Lambda와 통합할 수 있으며
이를 이용해 모든 변화를 스트리밍하고 이벤트에 근거해 반응하도록 할 수 있음
- 또한 DynamoDB Stream을 활성화해 백업 및 복구 기능이 존재하며 글로벌 테이블까지 사용할 수 있음
- CloudWatch와 통합해 모니터링을 수행
- 기본 키와 정렬 키, 인덱스에서만 쿼리가 가능한 단점이 있으므로 DynamoDB 테이블을 설계할 때 주의를 기울여야 함
- SQL 쿼리는 불가능
- 2018년부터 트랜잭션 기능이 존재
- 예) 서버리스 애플리케이션 개발 시 실제 열이 400KB보다 작고 분산 서러비스 캐시가 필요한 경우 사용
DynamoDB for Solutions Architect
- Operations
서버리스이므로 오토 스케일링, 온미맨드 활성화를 위해 아무것도 할 필요가 없으며 관리도 필요 없음
- Security
보안은 IAM 정책을 통해 모두 이루어지며 KMS 저장 데이터 암호화를 활성화하고 전송 중 SSL을 사용 가능
- Reliability
다중 AZ와 백업이 가능하여 가용 영역에 문제가 생기더라도 작업 내용을 잃지 않고
재해 복구가 필요한 경우 백업을 활성화해서 나중에 백업된 내용을 복구할 수 있음
- Performance
한 자릿수 밀리초 범위로 아주 훌륭하며 캐시로 사용하는 것 도 가능
데이터베이스 읽기 목적으로 실제 캐시를 활성화하려면 DAX를 사용
애플리케이션이 수백 TB로 확장되더라도 성능은 저하되지 않음
- Cost
프로비저닝 용량과 스토리지 사용량에 따라 청구되며
오토 스케일링을 사용하면 필요에 따라 알아서 축소하고 확장하므로 미리 용량을 계산(계획)할 필요가 없으며
작업이 없으면 돈을 적게 내고, 작업이 많아지면 돈을 더 내면 됨