Backend/꾸준히 TIL

[AWS/다큐먼트 읽기] AWS DynamoDB vs Timestream

개발하는 후딘 2023. 6. 8. 23:42
728x90
반응형

aws dynamodb와 timestream가 무엇인지 어떤차이점이 있는지 알고싶고 학습하기위해서

아래의 참고자료를 번역하고 정리해본 글입니다.

 

[References]

 

DynamoDB vs Amazon Timestream - The Ultimate Comparison

We compare DynamoDB vs Amazon Timestream in terms of use cases, performance, cost, security & many other features so you can select the right DB for your needs.

dynobase.dev


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
반응형