반응형

DynamoDB

DynamoDB는 완전 관리형 비관계형 데이터베이스 서비스

  1. 원활한 확장성 및 빠르고 예측 가능한 성능 제공
  2. 인프라를 운영하는데 있어 번거로움을 DynamoDB가 대신 도맡아 해줌
  3. 저장 시 암호화를 제공하여 중요 데이터 보호와 운영 부담 및 복잡성 제거

 

DynamoDB 주요 이점

  1. 모든 규모에서도 뛰어난 성능 제공
    • 모든 규모에서 일괄적인 10밀리초 미만의 응답시간
    • 무제한의 처리량으로 애플리케이션 빌드
  2. 서버리스
    • 서버를 프로비저닝, 패치 또는 관리할 필요가 없음(서버리스니까)
    • 설치, 유지 관리 또는 운영할 소프트웨어가 없음
  3. 엔터프라이즈 사용 가능
    • ACID 트랜잭션 지원
    • 모든 데이터 저장 시 암호화
    • 다중 리전 복제(글로벌 테이블)
    • 세분화된 자격 증명 및 액세스 제어 제공
    • 대규모의 데이터 즉각적인 백업 수행

 

DynamoDB 구성 요소

  • 테이블
    • 항목 : 레코드
    • 속성 : 필드
  • *기본 키 * : 테이블의 각 항목을 나타내는 고유 식별자
  • 단순 기본 키(파티션 키) : 하나의 속성으로 구성된 간단한 기본 키
    • 테이블 생성 시 테이블 이름과 더불어 테이블의 기본 키를 지정
    • 내부 해시 함수에 대한 입력으로 파티션 키를 사용
    • 해시 함수 출력에 따라 ㅎ항목을 저장할 파티션(내부 물리적 스토리지)이 결정
      • 경합을 막는 혁할
      • 성능 및 효율성 증대
      • 원하는 파티션만 조회를 하면 Prunning을 통해 FTS(Full Table Scan)를 막을 수 있다.
      • 이러한 특성 때문에 파티션 키를 잘 잡는 것이 중요
  • 복합 기본 키 : Partition Key + Sort Key
    • 항목이 파티션 키의 해시를 기준으로 파티션에 그룹화 되고, 정렬 키로 항목이 정렬 됨
    • 두 키의 합성은 테이블 전체에서 고유해야 함
  • 인덱스

 

DynamoDB 샤딩

DynamoDB가 데이터를 자동으로 관리

  • 여러 서버에서 하나 이상의 파티션으로 테이블을 수평적으로 샤딩
  • 데이터가 증가하면 리샤딩이 트리거 된다.
  • 적응형 용량은 고르지 않은 액세스 패턴을 수용

 

DynamoDB 적응형 용량

  • 기본적으로 사용 가능
  • RCU = Read Capacity Unit : 4KB 단위로 1초동안 몇 번 read?
  • WCU = Write Capacity Unit : 1KB 단위로 1초동안 몇 번 write?

프로비저닝 방식

RCU : 1000, WCU : 2000 처럼 이미 작업의 양이 정해져있는 경우

온디멘드 방식

RCU와 WCU가 들쭉날쭉한 경우(Ex: 티켓 예매)

 

인덱스

  • 글로벌 보조 인덱스 : 기본 테이블의 파티션 키 및 정렬 키와 다른 파티션 키와 정렬 키가 있는 인덱스
    • 기본 테이블과 파티션 키가 다르다. 최대 20개
    • 파티션 키가 다르기 때문에 다른 테이블에 저장이 됨 -> RCU, WCU를 함께 사용 할 수 없다.
  • 로컬 보조 인덱스 : 기본 테이블과 동일한 파티션 키가 있지만, 정렬 키가 다른 인덱스
    • 기본 테이블의 파티션 키 사용, 최대 5개
    • 기본 테이블의 정렬 키를 키가 아닌 속성으로 사용
    • 기본 테이블과 같은 공간에 저장되기에 RCU, WCU를 함께 사용 할 수 있다.

 

DynamoDB 트랜잭션

DynamoDB에 대한 ACID 규정 준수를 제공

  • 직렬화 가능 격리
  • 트랜잭션 활성화 비용 X
    • 트랜잭션당 두개의 추가 RCU/WCU
  • (강의 자료 더 보기)

배치 처리를 통해 한번에 다량의 트랜잭션 수행

  • 왕복 횟수 감소
  • 작업을 병렬로 수행

 

 

항목 만료

  • TTL(TIme to LIve)은 항목이 만료되는 시기를 지정
    • 항목별로 설정 가능
    • 테이블에서 TTL을 활성화하고 TTL 속성 지정
    • 최대 48시간 가능
    • 비용이 들지 않는 삭제 방법
  • 데이터 아카이빙
    • Lambda 함수를 사용하여 데이터 수집
    • 테이블에서 기한 경과 데이터 삭제

 

DynamoDB 스트림

DynamoDB Stream이 DynamoDB 테이블의 항목 수준 수정 사항을 시간 순으로 캡처한다.

  • 수정 사항 캡처 및 저장
    • PutItem
    • UpdateItem
    • DeleteItem
  • 저장 시 암호화
  • 스트림 레코드가 생성
  • 읽기 요청 유닛으로 청구
반응형

'Applied > AWS' 카테고리의 다른 글

[AWS] KMS(Key Management Service) 실습  (0) 2022.11.30
Yaml 파일이란?  (0) 2022.09.20
[AWS] Lambda란?  (0) 2022.09.18
[EKS] Kubenetes 명령어 연습하기  (0) 2022.09.14
AWS aurora database 개념  (0) 2022.09.08