Backend/꾸준히 TIL
[AWS/다큐먼트 읽기] AWS DynamoDB vs Timestream
개발하는 후딘
2023. 6. 8. 23:42
728x90
반응형
aws dynamodb와 timestream가 무엇인지 어떤차이점이 있는지 알고싶고 학습하기위해서
아래의 참고자료를 번역하고 정리해본 글입니다.
[References]
DynamoDB와 Timestream 비교
1. 개요
DynamoDB
- DynamoDB는 AWS에서 제공된 고가용성을 갖춘 NoSQL 데이터베이스 서비스
- ms범위의 지연시간을 보장
- Key-Value 형식과 다큐먼트 데이터구조를 지원
- 백업, 고가용성, 확장성 제공함
- 개발자의 작업을 더욱 쉽게 만들어줌
TimeStream
- AWS에서 제공하는 완전히 관리되는 데이터베이스 서비스
- 적응형 쿼리 엔진을 갖춘 시계열 데이터 저장소
- 하드웨어및 소프트웨어의 배포와 유지관리를 자동으로 처리하는 Serverless 서비스
- 자동데이터 압축, 티어링, 보존 및 롤업 기능을 갖추고 있다.
- 데이터보간, 스무딩, 근사화를 위한 내장형 분석기능 제공
2. 퍼포먼스(Performances)
DynamoDB
- 고성능 데이터서비스로 하루에 10조건 이상의 요청과 최대 2천만건의 요청을 처리 가능
- DynamoDB는 SSD의 높은 I/O 속도를 활용하여 데이터의 읽기 및 쓰기 시간을 최소화
- DynamoDB Accelerator(DAX)를 사용하여 ms 단위의 지연시간
- 테이블의 크기와 관계없이 DynamoDB는 높은 성능을 보장
- 지연시간을 ms범위로 유지한다.
- 효율적인 인덱스와 파티셔닝
Timestream
- 데이터 수집에 대해 거의 실시간과 유사한 지연시간을 제공
- 빠른 분석쿼리를 용이하기위해 최적화된 자성저장소(magnetic store)
- 테라바이트(TB)단위의 시계열 데이터를 몇초안에 분석하는 분석쿼리를 수행
- 메모리 저장소에서 수십 기가바이트 단위의 시계열 데이터를 ms안에 분석하는 쿼리수행
- 분산아키텍쳐와 광범위한 병렬처리 활용
- 데이터양이 증가함에따라 거의 일정한 쿼리 지연시간을 유지하여 데이터 분석
- 빠른 쿼리성능
- 관계형데이터베이스의 1/10 비용으로, 1000배빠른 쿼리성능
- 실시간 분석을 제공하기 위해 설계된 DB
3. 보안(Security)
DynamoDB
- AWS IAM 을 통한 사용자 기반 인증 지원
- AWS IAM을 사용하여 별도의 사용자, 사용자 역할과 정책을 생성,요구에따라 사용자에게 할당
- 적절한 구성으로 다른 사용자가 다른 테이블에 액세스할 수 있도록 쉽게 설정
- AWS KMS(AWS Key Management Service) 를 사용한 데이터 암호화를 지원
- AWS KMS 에 저장된 암호화 키를 사용하여 테이블, 인덱스, 스트림 및 백업에 저장된 모든 사용자 데이터를 안정상태에서 암호화
- 기본저장소에 대한 무단 액세스를 방지하여 데이터 보안을 강화
TimeStream
- AWS KMS를 사용하여 데이터 암호화한다.
- 데이터 보안
- 안정상태에서의 암호화
- AWS KMS를 사용하여 저장된 암호화키를 사용하여 모든 데이터를 안정상태에서 암호화.
- 민감한 데이터를 안전하게 보호
- 전송중 암호화
- 모든 데이터는 암호화 된다.
- 전송중 기본적으로 TLS(Transport Layer Security) 프로토콜을 사용하여 통신이 암호화된다.
- 안정상태에서의 암호화
4. 확장성(Scalability)
DynamoDB
- DynamoDB 테이블은 매우 확장이 가능하여, 테이블을 생성할 때 두가지 용량 모델 중 하나를 선택하도록 한다.
- 프로비져닝된 용량모드
- 사용자가 최소/최대 용량 단위의 수를 정의해야한다.
- 테이블은 해당 한계 내에서만 작동한다.
- 사용자는 사용여부에 관계없이 제공된 처리량에 대해 청구된다.
- 온디맨드 용량모드
- DynamoDB가 트래픽에 의해 자동으로 읽기/쓰기 용량 단위를 결정.
- AD-Hoc 트래픽을 가진 애플리케이션에 적합하다.
TimeStream
- 데이터 적재, 저장 및 쿼리를 독립적으로 확장할 수 있는 완전히 분리된 설계
- 애플리케이션 요구에 거의 무한한 확장을 제공
- 인프라를 관리하거나 용량을 프로비져닝할 필요가 없음
- 적재 및 쿼리확장은 워크로드에 기반하여 자동화 됨
- 복잡한 데이터 보관 프로세스를 구성, 모니터링 및 관리할 필요가 없다.
- 데이터 보존정책을 쉽게 구성
- 데이터를 메모리 스토어에서 자동으로 자기스토어로 이동
- 특정날짜에 도달하면 메모리 스토어에서 삭제가능.
5. 백업(Backups)
DynamoDB
- 온디맨드 백업
- 테이블 전체 백업
- 백업 및 복원 작업은 테이블의 성능과 가용성에 영향을 주지 않는다.
- PITR(시간대 복구)
- 우연한 쓰기, 삭제 작업으로부터 테이블을 보호
- 활성화되면 시간대 복구 백업이 자동으로 생성
- 초 단위의 정밀도로 최대 35일 동안 테이블을 복원
TimeStream
- 여러 가용영역 제공
- 저지연, 고처리량 및 고신뢰성 네트워킹으로 연결되어있음.
- 가용영역을 사용하여 다운타임없이 영역간에 자동으로 전환되는 데이터베이스 및 응용프로그램을 설계 및 실행
- 멀티-AZ
- 다른지역이나 가용영역의 백업을 지원하지 않는다.
- Timestream SDK를 사용하여 데이터를 쿼리하고 원하느 ㄴ위치에 저장하는 애플리케이션은 생성할 수 있다.
6. 가격
DynamoDB
- 사용량에 따라 비용부과됨
- 온디맨드(On-demand) 용량 모드
- 애플리케이션 트래픽으로 청구비용이 결정됨
- 프로비저닝된(Provisioned) 용량 모드
- 사용자가 정의한 읽기/쓰기 용량 단위에 청구비용이 계산됨
TimeStream
- 사전 지불금이나 최소요금이 없고, 실제로 사용하는 서비스에 대해서만 비용을 지불
- 가격결정 요인
- 메모리 저장소의 필요한지?
- 데이터베이스에서 많은 읽기작업을 하는지?
- 쓰기작업/ 쿼리작업/ 메모리 및 자기저장소(Magnetic Store)에 저장된 데이터 양을 기반으로 한다.
- 비용 최적화 제공해줌.
- 다중 측정 시계열 레코드
- 데이터 배치처리
- 중복 데이터의 자동감지
- 자기저장소(Magnetic Store) 쓰기 작업
- 데이터 보존
- 효과적인 쿼리 작성
- 일정에 따른 쿼리실행
7. 어떤 상황일때 쓰는게 좋을까?
DynamoDB
- 장점
- 비용효율적이다.
- 언제쓰는게 좋을까?
- 다른 aws 서비스를 사용하고 있는 애플리케이션
- 확장 가능한 성능이 필요한 애플리케이션
- 실시간 스트리밍 애플리케이션
- 확장 가능한 애플리케이션
- 게임 플랫폼, 쇼핑카트
TimeStream
- 장점
- 데이터를 수집 & 분석하는데 좋다.
- 시스템의 상태를 모니터링하고 인스턴스 활용을 최적화할때 유용
- CPU/Memory 사용률, 네트워크 데이터, IOPS(Input/Output Operation per second: 초당 입출력 작업) 운영지표를 수집하고 분석
- 언제쓰는게 좋을까?
- 분석 애플리케이션
- IoT 기반 애플리케이션
- DevOps 애플리케이션
728x90
반응형