Search

DynamoDB

DynamoDB
SSD기반 무제한 스토리지
key-value 형태로 저장
10m/s 미만의 응답 시간
확장이 단순하고 신속함
자동 이중화 백업 (3개 지역 분산)
관리 부담 감소 사용 편의성
비정형 데이터 저장에 유용함
완전관리형 NoSQL 데이터베이스
서버리스 서비스

백업 및 복구

DB 테이블에 대해 온디맨드 백업을 생성하고 특정 시점으로 복구를 활성화
특정 시점으로 복구 PITR(Point-in-time recovery)를 사용해 최근 35일 이내 원하는 시점으로 테이블 복원 가능

테이블 클래스

Standard
기본형으로 대부분의 워크로드에 권장
Standard-IA
애플리케이션 로그, 전자 상거래 주문 내역와 같이 자주 엑세스하지 않는 데이터를 저장하는 테이블에 대한 비용을 줄임

읽기/쓰기 용량 모드

온디맨드 모드
초당 읽기/쓰기 처리량을 자동으로 조정
트래픽 예측이 불가능한 경우 사용
프로비전드 모드
읽기/쓰기 횟수를 수동으로 조정
트래픽 예측이 가능한 경우 사용

Accelerator (DAX)

데이터베이스 앞에 인메모리 캐시를 사용해서 DB의 읽기 성능을 향상시키는 기능
마이크로 초 단위의 응답시간을 제공

글로벌 테이블

리전간에 데이터베이스를 복제하는 기능
모든 리전에서 읽기, 쓰기 가능
복제본 테이블에 있는 항목의 모든 변경 사항은 동일한 글로벌 테이블 내의 다른 모든 복제본에 1초 이내로 복제됨
하나의 리전에 문제가 발생해도 다른 리전으로 라우팅 되므로 재해 복구 기능을 함
사용자는 가까운 리전에서 DB를 사용하기에 더욱 빠른 성능 지원

TTL (Time To Live)

TTL을 사용하여 항목별 타임스탬프를 정의하여 항목이 더 이상 필요하지 않는 시점을 결정
지정된 타임스탬프 날짜 및 시간이 지나면 테이블에서 항목을 삭제

Streams

DB 테이블에 저장된 항목에 변경이 발생하는 경우 변경 사항을 캡쳐하는 기능
변경 사항에 대해 Kinesis Data Stream으로 보내거나 Lambda로 트리거하여 SNS로 전송하여 이메일 등의 이벤트 알림을 생성할 수 있음

읽기 일관성

데이터를 읽을 때 사용자는 읽기를 최정적 일관된 읽기나 강력한 일관된 읽기로 지정 가능
최종적 일관된 읽기
최종 일관성 옵션은 읽기 처리량을 최대화
최종적 일관된 읽기는 최근 완료한 쓰기 결과를 반영하지 못할 수 있음
강력한 일관된 읽기
읽기 전에 성공적인 응답을 수신한 모든 식을 반영한 결과를 반환
최종적 일관된 읽기보다 읽기 지연시간이 길어지거나 처리 용량을 많이 사용

S3와 통합

S3로 보내기
DynamoDB 테이블의 데이터를 S3 버킷으로 보내는 기능
자동 백업인 특정 시점으로 복구(PITR) 기간 내의 데이터만 내보낼 수 있음 (최대 35일)
기능 사용을 위해서는 특정 시점으로 복구 PITR가 활성화 되어야함
데이터를 DynamoDB JSON 형식 또는 Amazon Ion text format 형식으로만 내보낼 수 있음
S3로 내보낸 데이터를 Athena, Glue, Lake Formation 등 다른 AWS 서비스를 사용하여 데이터에 대한 분석과 복잡한 쿼리를 수행 가능
테이블 내보내기는 테이블의 읽기 용량을 사용하지 않으며 테이블 성능 및 가용성에 영향을 주지 않음
테이블 데이터를 다른 AWS 계정이 소유한 S3 버킷 및 해당 테이블이 있는 리전과 다른 리전으로 내보낼 수 있음
S3에서 가져오기
S3의 데이터를 DynamoDB 테이블로 가져오는 기능
CSV, DynamoDB JSON 형식 또는 Amazon Ion text format을 가져올 수 있음

Get Item

GetItem은 DynamoDB에서 단일 항목(아이템)을 조회하는 API이다.
요청 시 지정한 기본 키(primary key)로 단일 아이템을 검색한다.
aws dynamodb get-item \ --table-name YourTableName \ --key '{"YourPrimaryKeyAttributeName": {"S": "YourPrimaryKeyValue"}}'
Shell
복사

Batch Get Item

BatchGetItem 여러 아이템을 동시에 조회하는 API이다.
여러 테이블에서 최대 100개 아이템까지 요청할 수 있다.
한 번의 요청으로 가져오기 때문에 효율적이다.
제한 사항: 최대 아이템 = 100개, 총 데이터 크기 = 16MB
aws dynamodb batch-get-item \ --request-items '{ "YourTableName": { "Keys": [ {"YourPrimaryKeyAttributeName": {"S": "Value1"}}, {"YourPrimaryKeyAttributeName": {"S": "Value2"}} ] } }'
Shell
복사