RDS vs DynamoDB

Untitled

NoSQL은 확실히 SQL에 비해 수평적으로 확장하는 데이터에 강점을 가지고 있다. Key-Value만 추가하면 뚝딱이니까..그에 반해 SQL은 정형 데이터에는 Query문을 통해 많은 조합을 할 수 있다는 것이 장점이긴하다..그래서 처음에 DB설계를 중요시 하는 이유이기도 하고…

Amazon DynamoDB

Amazon에서는 MongoDB와 같은 NoSQL DB인 DynamoDB 서비스를 제공하고 있다.

원체 지연시간이 짧고 I/O가 빠르다는 것은 익히 들었던 서비스이고 써봤기에 친숙함이 생긴다..

DynamoDB는 AWS에서 모든 기본 데이터 인프라를 관리하고 내결함성을 보장한다. DynamoDB를 통해서 테이블과 항목을 추가하면 그걸로 끝이다! 시스템이 자동으로 데이터를 분할하고 스토리지를 확보하기 떄문에 우리는 신경쓰지 않아도 된다,

심지어 NoSQL의 장점을 극한으로 살리기 위해 테이블에 저장하는 항목 수는 제한이 없다..ㅎㄷㄷ

NoSQL DB의 장점 중 하나는 동일 테이블의 항목이 다른 속성을 가질 수 있다는 것이다.(항목 하나에 여러개의 값을 넣을 수 있다는 소리다) 이렇게 하면 스키마 마이그레이션이 필요 없고 그냥 테이블에 단순히 속성을 추가하면 완성이라 SQL에 비해 매우 편하다…

또한 DynamoDB를 통해 어플 사용자 수가 증가하면 수동 프로비저닝을 통해 DynamoDB 테이블을 확장하여 증가한 I/O 트래픽을 처리할 수 있고 혹은 Auto Scaling을 통해 자동으로 이를 조정할 수도 있다.

추가적으로 선택한 AWS 리전, 저장 데이터의 암호화 및 TTL, 항목간에 자동으로 복제할 수 있는 글로벌 테이블이 있다.

결국 DynamoDB의 핵심 요소는 Table, items, attributes이다.

Untitled

그냥 여기서 전체가 Table이고 가로가 Items 세로가 Attributes라고 생각하면 편하다.

그리고 현재 Partition key(== Primary key)는 Grade이다.