AWS/Database
AWS DynamoDB 공부
데이터 개발자
2024. 8. 19. 21:38
Amazon DynamoDB

AWS에서 제공하는 Serverless NoSQL 데이터베이스 서비스이다.
NoSQL로 기존 RDB와의 차이점은 별로의 포스팅에 작성해두었다.
https://jrograming.tistory.com/11
SQL, RDBMS vs NoSQL 공부
AWS Storage를 공부하려고 보니 Database의 RDB와 NoSQL을 또 살펴보게 됐다.해당 주제는 내가 신입 사원 면접을 준비하는 과정에서 공부했던 내용인데 결국 또 공부하게 될 만큼 굉장히 중요한 주제라
jrograming.tistory.com
굉장히 유연한 확장성과 빠른 성능을 제공중인 데이터베이스로 많은 요구사항에 사용된다고 생각한다.
DynamoDB
- Serverless NoSQL database
- Full managed service
- fast, performace
- scale-up, scale-out
DynamoDB 구성 요소
Tables, Items, attribute 로 구성
- Table = collection of items
- Item = collection of attributes

각각의 테이블은 Primary Key 를 가지고 각각의 item을 구성한다 (unique)
또한, secondary indexes를 통해 유연한 쿼리도 지원하게 된다.
Primary Key, Secondary Indexes
Primary Key : DynamoDB의 테이블에서 반드시 지정해야하는 unique key이다.
- Partition Key = simple primary key
- ex) user_id
- Partition Key + Sort Key = composite primary key
- ex) user_id, site_id
Secondary Indexes : primary key 뿐만 아니라 secondary key로 쿼리가 가능하다.
- Local Secondary Index(LSI)
- partition key는 같지만 sort key가 다르다
- 반드시 테이블을 생성할때 지정해야한다
- Global Secondary Index (GSI)
- partition key, sort key 모두 기본 테이블과 다를 수 있다.
- 테이블 생성 이후 수정, 추가 가능하다
Reference
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html
- https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/SecondaryIndexes.html