목차
AWS DynamoDB
Primary Key
Partition Key
dynamodb admin
distributed lock 분산락
비용 최적화
참고
AWS DynamoDB
https://aws.amazon.com/ko/dynamodb/
DynamoDB를 사용한 설계 및 아키텍처 설계 모범 사례 - Amazon DynamoDB
: 가장 중요한 pitfalls 들이 나오므로 필독할 것.
DynamoDB 로컬 설정(다운로드 버전) - Amazon DynamoDB
LocalStack
https://github.com/mhart/dynalite
https://mvnrepository.com/artifact/com.amazonaws/DynamoDBLocal?repo=mulesoft-public
Primary Key
Primary Key = Partition Key + Sort Key
Partition Key 는 필수이고, Sort Key 는 선택이다.
Primary Key 는 Unique 해야한다. 즉, Partition Key + Sort Key 는 Unique 해야한다.
Sort Key 가 없을 때는 Partition Key 가 Unique 해야한다.
Partition Key
성능에 가장 중요한 요소로 작동하는 것이 Partition Key 이다.
절대로 한 번에 쓰기가 일어나거나, 읽기가 한번에 일어나는 파티션 키를 사용해서는 안된다. (예: 생성일자 같은 것은 사용금지)
전체에서 Unique 한 값이나 UUID 등 랜덤 분산이 될 법한 것을 키로 사용해야 한다.
굳이 날짜를 사용하겠다면 postfix 로 1~200 정도를 붙여서 파티션키를 만들고 조회도 200번 해서 합치게 한다. (예:
2023-01-06.001 ~ 2023-01-06.200
)
AWS DynamoDB Schema Design | How to choose the right key - YouTube
dynamodb admin
https://www.npmjs.com/package/dynamodb-admin
distributed lock 분산락
Building Distributed Locks with the DynamoDB Lock Client | AWS Database Blog
awslabs/amazon-dynamodb-lock-client: The AmazonDynamoDBLockClient is a general purpose distributed locking library built on top of DynamoDB. It supports both coarse-grained and fine-grained locking.
비용 최적화
Dynamic했던 DynamoDB 비용효율화. Dynamo DB( 이하 ‘DDB’)는 잘 쓰면 약이지만 잘못 쓰면… | by Hyekyung | 롯데ON 기술 블로그
Cost Explorer
로 비용 확인
PITR 끄기 : 단, 별도의 백업 방식을 두어야 함.
Standard IA : RCU, WCU의 사용이 적고 스토리지 사용이 많은 테이블 대상으로 적용하면 30%정도의 비용 효율을 볼 수 있는 옵션
TTL 두고 불필요한 데이터 자동 삭제
참고
Resolve to follow Amazon DynamoDB best practices in 2019 | AWS Database Blog
Spring Boot에서 Repository로 DynamoDB 조작하기 (1) - 설정부터 실행까지 - 우아한형제들 기술 블로그
AWS의 대표적인 NoSQL 데이터베이스 서비스! Amazon DynamoDB에 입문 해봅시다. | DevelopersIO
Exploring serverless patterns for Amazon DynamoDB | AWS Compute Blog
AWS DynamoDB Tutorial For Beginners - YouTube