Skip to content

Latest commit

 

History

History
83 lines (51 loc) · 5.48 KB

DynamoDB.md

File metadata and controls

83 lines (51 loc) · 5.48 KB

DynamoDB

DynamoDB는 key-value 구조를 가진 완전 관리형 NoSQL 데이터베이스입니다.

완전 관리형

프로비저닝, 복제, 버전 관리, 클러스터 확장 등을 모두 관리해줍니다.워크로드 수요에 맞춰 자동으로 처리 능력을 확장하며 테이블 크기가 증가함에 따라 데이터를 파티셔닝 및 재파티셔닝합니다.AWS 리전의 세 개 시설에 데이터를 동기적으로 복제하여 높은 가용성과 데이터 안정성을 제공합니다.

기본 키

기본 키는 단일 속성 파티션 키 또는 복합 파티션-정렬 키 중 하나가 됩니다. (단일 키는 파티션 키, 해시값으로 파티셔닝합니다.)DynamoDB는 복합 파티션-정렬 키를 파티션 키 요소 및 정렬 키 요소로 인덱싱합니다.복합 파티션-정렬 키를 사용하는 경우 첫 번째와 두 번째 요소 값 사이의 계층 구조가 유지됩니다.

보조 인덱스

테이블에서 하나 이상의 보조 인덱스를 생성할 수 있습니다.

  • 글로벌 보조 인덱스
    • 파티션 키 및 정렬 키가 테이블의 파티션 키 및 정렬 키와 다를 수 있는 인덱스
    • 테이블당 20개 (기본 할당량)
  • 로컬 보조 인덱스
    • 테이블과 파티션 키는 동일하지만 정렬 키는 다른 인덱스
    • 테이블당 5개 (기본 할당량)

데이터 쿼리

DynamoDB 콘솔 또는 CreateTable API를 사용하여 테이블을 만듭니다.PutItem 또는 BatchWriteItem API를 사용하여 항목을 삽입하고, GetItem 또는 BatchGetItem 을 사용하거나,복합 기본 키가 활성화되어 사용되고 있는 경우는 Query API 를 사용하여 테이블에 추가한 항목을 검색할 수 있습니다.

요금

각 DynamoDB 테이블에는 프로비저닝된 읽기 처리량과 쓰기 처리량이 지정되어 있습니다.프리 티어를 초과하는 경우 그 처리 능력에 1시간 단위로 요금이 부과되고, 테이블로 요청을 전송했는지 여부와 관계없이 처리 능력에 대해 시간당 요금이 부과됩니다.

프로비저닝 처리량

단일 테이블에 프로비저닝할 수 있는 최대 처리량은 무제한입니다.최소 처리량은 1개의 쓰기 용량 유닛과 1개의 읽기 용량 유닛이고, 전체 테이블의 용량을 합산하여 1개 계정에서 각 25개 유닛까지 프리 티어 범위가 됩니다.

일관성 모델

최종적 일관된 읽기와 강력한 일관된 읽기 옵션의 차이를 정확히 알아두는 것이 좋습니다.

  • 최종적 일관된 읽기 (기본값)
    • 읽기 처리량을 최대화
    • 최근 완료한 쓰기 결과를 반영하지 못할 수 있습니다.
  • 강력한 일관된 읽기
    • 읽기 전에 성공적인 응답을 수신한 모든 쓰기를 반영한 결과를 반환합니다.
  • ACID 트랜잭션
    • 단일 AWS 계정 및 지역에서 ACID(원자성, 일관성, 격리성, 지속성)를 제공합니다.
    • 여러 항목에 대한 통합된 삽입, 삭제, 업데이트가 필요한 애플리케이션을 구축하는 경우 트랜잭션을 사용할 수 있습니다.

암호화

새 테이블을 생성할 때 암호화를 활성화하면 DynamoDB에서 나머지를 모두 처리해 줍니다.암호화 유형은 다음 세 가지가 있습니다.

  • 기본값
    • AWS 소유 고객 마스터 키(CMK). 키는 DynamoDB가 소유합니다. 추가 비용은 없습니다.
  • KMS - 고객 관리형
    • 고객 관리형 CMK. 사용자 계정에 키가 저장되며 사용자가 생성, 소유, 관리하게 됩니다. KMS 비용이 발생합니다.
  • KMS - AWS 관리형
    • AWS 관리형 CMK. 사용자 계정에 키가 저장되며 AWS KMS에 의해 관리됩니다. KMS 비용이 발생합니다.

Amazon DynamoDB Accelerator (DAX)

DAX는 완전 관리형 In-Memory Read Performance를 향상시켜주는 인메모리 캐시 서비스입니다.

DynamoDB Stream

테이블의 실시간 데이터 수정 이벤트를 캡처하는 기능입니다.테이블에서 스트림을 설정하면 다음과 같은 이벤트가 발생할 때마다 스트림 레코드를 기록합니다.

  • 테이블에 새 항목이 추가되는 경우, 모든 속성을 포함하여 전체 항목의 이미지 캡처
  • 항목이 업데이트 되는 경우, 수정된 속성의 이전 및 이후 이미지 캡처
  • 항목이 삭제되는 경우, 삭제하기 전의 전체 항목 이미지 캡처

스트림 레코드의 수명은 24시간입니다.각 스트림 기록은 스트림에서 한 번만 나타나고, 실제 항목 수정과 동일한 순서로 나타납니다.

스트림과 Lambda를 결합하여 새로운 유저가 생성된 경우에 SES를 통해 이메일을 보내도록 하는 기능 등을 설계할 수 있습니다.

Untitled

https://social.technet.microsoft.com/wiki/cfs-filesystemfile.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/6433.sql-vs-nosql.jpg

https://velog.io/@drakejin/DynamoDB에-대해서-알아보자-1

Untitled 1