
DynamoDB란?
DynamoDB는 완전 관리형 NoSQL 데이터베이스 서비스로, 높은 가용성과 자동 확장성을 제공하는 것이 특징임. AWS에서 제공하는 서비스 중 하나로, 대량의 데이터를 처리하면서 빠른 응답 속도를 유지할 수 있음
읽기/쓰기 용량 모드
DynamoDB는 테이블의 읽기/쓰기 성능을 조절할 수 있도록 두 가지 모드를 제공함
✅ Provisioned Mode (기본 설정)
- 초당 읽기/쓰기 용량을 사전에 지정하여 운영
- 사용량이 일정한 경우 비용을 절감 가능
- Auto Scaling 설정 가능 → 트래픽 변화에 따라 자동으로 확장 가능
- 비용은 설정한 읽기/쓰기 용량 기준으로 부과
✅ On-Demand Mode
- 자동 확장/축소 기능을 제공 → 용량을 미리 지정할 필요 없음
- 사용한 만큼만 비용이 발생 (더 비싸지만 유연함)
- 예측이 어려운 트래픽 또는 급격한 트래픽 변화가 있는 서비스에 적합
🚀 DynamoDB Accelerator (DAX)
DAX는 DynamoDB 전용의 완전 관리형 인메모리 캐시 서비스로, 읽기 부하를 줄이고 성능을 개선하는 역할을 함.
- 마이크로초(microseconds) 수준의 지연 시간을 제공
- 애플리케이션 코드 변경 없이 적용 가능
- 기본 TTL(Time To Live): 5분
- ElastiCache보다 개별 객체 캐싱 및 쿼리 캐싱에 강점이 있음
🔹 언제 DAX를 사용해야 할까?
- 높은 읽기 부하를 처리해야 하는 경우
- 반복적으로 읽는 데이터가 많을 경우 (ex: 인기 상품 조회)
🔄 스트림 처리 (DynamoDB Streams)
DynamoDB Streams는 테이블의 변경 사항을 실시간으로 캡처하여 다른 서비스와 연동하는 기능을 제공함
✅ 스트림 활용 사례
- 데이터 변경 감지 & 트리거 (예: 상품 구매 시 이메일 영수증 자동 발송)
- 실시간 사용 분석 (예: 사용자 활동 로그 분석)
- AWS Lambda 연동하여 이벤트 기반 처리 가능
- 리전 간 데이터 복제 가능
🔹 DynamoDB Stream vs Kinesis Data Streams
기능 | DynamoDB Stream | Kinesis Data Streams |
---|
데이터 보관 기간 | 24시간 | 최대 1년 |
소비자 수 제한 | 있음 (제한적) | 더 많은 소비자 지원 |
사용 사례 | DB 변경 감지 및 트리거 | 데이터 분석, 실시간 이벤트 처리 |
🌍 글로벌 테이블 (Global Tables)

- DynamoDB 데이터를 다중 리전에 복제하여 낮은 지연률로 글로벌 접근 가능
- 모든 리전에서 읽기/쓰기 가능
- DynamoDB Streams 활성화 필수
- 글로벌 서비스(예: 다국적 온라인 쇼핑몰)에서 유용하게 사용 가능
💾 재해 복구를 위한 백업
DynamoDB는 두 가지 백업 방식을 제공함.
✅ 시점 기반 복구 (Point-in-Time Recovery)
- 최근 35일간의 데이터를 복구 가능
- 특정 시점의 데이터를 복원 가능
- 새로운 테이블을 생성하여 복구 수행
✅ On-Demand 백업
- 장기적인 데이터 보관 가능
- 수동으로 삭제하기 전까지 유지됨
- 성능 저하 없이 백업 가능
- AWS Backup을 통해 백업 관리 가능
- 리전 간 백업 가능
📌 복구 시 신규 테이블을 생성해야 함!
🐈 정리
✅ DynamoDB는 NoSQL 기반의 확장성과 성능을 보장하는 강력한 데이터베이스 서비스이며, 읽기/쓰기 모드, 스트림 처리, 글로벌 테이블, 백업 등 다양한 기능을 활용하면 더욱 강력한 성능을 제공할 수 있음!