AWS 11 -DynamoDB
DynamoDB(다이나모디비)
DynamoDB는 AWS의 대표적인 NoSQL 기반의 데이터 베이스로 , Key-Value 형태를 제공합니다.
스키마가 따로 정해져 있지 않으며, 확장성이 높은 고성능의 데이터베이스를 제공합니다. 또한, JSON 형태로 데이터를 저장하고, 온디멘드 형식으로 확장이 용이한 장점이 있습니다.
SQL vs NoSQL
구분 | SQL(RDB) | NoSQL | |
---|---|---|---|
처리데이터 | 정형데이터 | 정형, 비정형, 반정형 | |
대용량데이터 | 대용량 처리 시 성능 저하 | 대용량 데이터 처리 지원 | |
스키마 | 미리정해진 스키마가 있다. | 스키마가 없거나 변경이 자유롭다. | |
트랜젝션 | 트랜젝션을 통해 일관성 유지 보장 | 트랜젝션을 완전히 지원하지 않아 일관성을 유지하기 힘들다. | |
검색기능 | Join 등의 어렵고, 복잡한 검색이 가능 | 단순한 데이터 검색 가능 | |
확장성 | 클러스터링 환경에 비적합 | 클러스터링에 적합 | |
라이센스 | 고가의 라이센스 비용 | 오픈소스 | |
대표적 사례 | oracle. MySQL, MS SQL | 카산드라, 몽고DB | |
장, 단점 | 복잡한 질의 가능, 트렌젝션을 통해 일관성 유지, 대량의 비정형 데이터 처리 시 비효율적이다. | 대량이 비정형 데이터 처리에 용이, 질의 속도가 빠르다. 정해진 스키마가 없어 편리하지만 일관성 유지 못한다. 복잡한 질의를 못하고 키를 통한 전체, 일부 검색 가능 |
NoSQL 특징
- Key-Value 쌍으로 저장.
- 이미지 동영상 등 어떠한 형태도 저장 가능
- 질의 속도가 빠르다.
- 키를 통한 값 전체 검색은 가능하나, 값의 일부 검색이나 내용을 통한 검색을 할 수 없다.
DynamoDB 구성
- 다른 DB 시스템과 마찬가지로 데이터를 테이블에 저장한다.
- 각각의 데이터는 항목과 속성을 이루어 진다.
- 각 개별 데이터를 항목이라 하고 , 항목이 가지고 있는 Key-Value 형태의 데이터를 속성이라 한다.
- 파티션 키 : 테이블에 무조건 하나만 존재해야 하는 값으로 테이블에 있는 아이템을 어디에 나눌지 정하는 Key
- 정렬 키 : 정렬할때 사용하는 Key로 필수는 아님
- 글로벌 보조 인덱스(GSI) : 테이블을 만든 후 추가할 수 있으며, 현재 테이블과 동기화해 동일한 테이블 작성 가능
-
로컬 세컨더리 인덱스(LSI) : 대체 정렬 키로 쿼리, 스켄 시 사용, 데이터를 생성하는 시점에서만 만들 수 있다.
- 추가적인 자세한 사항은 AWS 설명서 참조
DynamoDB 사용해 보기
-
DynamoDB 데시보드 -AWS의 DynamoDB 서비스에 들어가면 위와 같은 DynamoDB 대시보드를 볼 수 있습니다. DB를 생성하기 위해 상단의 테이블 만들기를 선택합니다.
- DynamoDB 테이블 만들기
- 테이블의 이름과 필수적인 기본키를 정해 줍니다. 추가적으로 정렬키가 필요한경우 추가해 주시면 됩니다.
- DynamoDB 테이블 생성 완료
- 위의 생성 버튼을 클릭하면 DynamoDB 생성이 완료 됩니다,
- 또한 위의 항목에서 테이블에 저장된 값들을 볼 수 있으며, 항목 생성 또한 가능합니다. 추가적으로 측정치, 알람, 용량, 인덱스 등의 값을 볼수 있습니다.