DynamoDB DAX (DynamoDB Accelerator)
DAX란?
- 클러스터 기반 인메모리 캐시로 DynamoDB의 읽기 성능을 최대 10배 이상 향상시키는 서비스
- 읽기 요청만 캐싱되며, 쓰기 요청에는 적용되지 않는다.
사용 예시:
- 쇼핑 이벤트(예: 블랙 프라이데이)와 같이 읽기 요청이 폭증할 상황에서 DAX를 사용하면 서버 부하를 줄일 수 있다.
DAX의 원리
- DAX 캐시 시스템은 데이터를 DynamoDB 테이블에 삽입하거나 업데이트할 때 DAX에도 반영
- 사용자가 데이터를 요청할 때, DAX에 해당 데이터가 있으면 즉시 반환(캐시 적중, Cache Hit)하고, 없으면(캐시 미스, Cache Miss) DynamoDB에서 가져온다.
DAX의 장점
- 성능 향상: 읽기 요청이 많은 경우 빠른 응답 속도로 성능을 크게 개선한다.
- 비용 절감: 높은 읽기 용량을 요구하는 작업에서 DAX를 통해 DynamoDB 사용량을 줄여 비용 절감 효과를 얻을 수 있다.
- 서버리스 관리: DAX는 AWS에서 서버리스 방식으로 관리되므로 캐시 유지보수를 따로 할 필요가 없다.
DAX의 단점
- 쓰기 요청에 적용되지 않음: 쓰기 요청을 캐싱하지 않아 쓰기 중심 애플리케이션에는 효과적이지 않는다.
- 복잡한 설정 및 관리: 대규모 애플리케이션에서는 DAX 클러스터를 추가 설정하고 모니터링해야 한다.
- 제한된 가용 지역: DAX는 특정 AWS 리전에서만 제공되므로, 글로벌 애플리케이션에서는 제한이 있을 수 있다.
DynamoDB Streams
DynamoDB Stream이란?
- DynamoDB 테이블에서 발생하는 데이터 변경(삽입, 수정, 삭제 등)을 시간 순서대로 기록하여 스트림에 저장하는 서비스
- 각 로그는 즉시 암호화되어 저장되며, 24시간 동안 보관
사용 예시:
- 이벤트 기반 애플리케이션에서 유용하게 사용
- 예를 들어, 특정 데이터가 추가되면 알람을 발생시키거나 다른 서비스를 연동이 가능
주요 기능 및 특징:
- 이벤트의 이전 및 이후 데이터 상태를 모두 보관하여 데이터 변경 사항을 추적할 수 있습니다.
- 주로 Lambda Function, SNS (Simple Notification Service), SQS (Simple Queue Service) 등의 서비스와 연계하여 사용할 수 있습니다.
Streams의 장점:
- 실시간 데이터 추적: 데이터의 삽입, 수정, 삭제와 같은 모든 변화를 실시간으로 추적할 수 있습니다.
- 간편한 이벤트 연동: Lambda, SQS, SNS와 쉽게 연동되어 데이터 변경에 따른 다양한 이벤트를 자동 처리할 수 있습니다.
- 데이터 복제 및 동기화: 스트림을 사용해 DynamoDB 테이블을 다른 테이블이나 데이터 저장소와 동기화하거나 복제할 수 있습니다.
Streams의 단점:
- 24시간 제한된 데이터 보관: 데이터 변경 사항은 스트림에서 24시간만 보관되어 장기적인 데이터 이력 추적에는 부적합합니다.
- 추가 비용 발생: DynamoDB Streams 사용 시 별도의 추가 비용이 발생할 수 있습니다.
- 읽기 지연: 데이터가 DynamoDB 테이블에 기록된 후 Streams로 반영되는 데에 약간의 지연이 있을 수 있어, 극도로 실시간이 중요한 경우 주의가 필요합니다.
정리
특징 | DAX (DynamoDB Accelerator) | DynamoDB Streams |
주요 기능 | 읽기 성능 향상 | 데이터 변경 사항 추적 및 이벤트 처리 |
적용 대상 | 읽기 요청 (쓰기 요청에는 적용되지 않음) | 모든 데이터 변경(삽입, 수정, 삭제) |
사용 사례 | 읽기 요청이 폭증하는 쇼핑 이벤트 등 | 특정 데이터 변경 시 알림, 데이터 복제 및 동기화 |
작동 원리 | 인메모리 캐시를 통해 데이터 조회 시 속도 향상 | 변경 사항을 시간 순서대로 기록하여 스트림에 저장 |
장점 | 읽기 성능 최대 10배 향상, 서버리스 관리, 비용 절감 가능 | 실시간 데이터 추적, 이벤트 연동, 데이터 동기화 |
단점 | 쓰기 중심 애플리케이션에는 부적절, 특정 AWS 리전만 지원 | 24시간 데이터 보관 제한, 추가 비용 발생 |
참고강의
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8
'백엔드 공부일지 > AWS 공부일지' 카테고리의 다른 글
[AWS] VPC / Subnet / Routing Table / Internet Gateway (1) | 2024.11.11 |
---|---|
[AWS] DynamoDB 기초부터 Index, Query, Scan 활용까지 (1) | 2024.11.04 |
[AWS] S3 사용 용례 & 암호화 (1) | 2024.10.06 |
[AWS] S3와 S3 스토리지 종류 (0) | 2024.10.06 |
[AWS] RDS 읽기 전용 복제본 & AZ 가용영역 (1) | 2024.09.29 |