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 데시보드 DynamoDB 1 -AWS의 DynamoDB 서비스에 들어가면 위와 같은 DynamoDB 대시보드를 볼 수 있습니다. DB를 생성하기 위해 상단의 테이블 만들기를 선택합니다.

  • DynamoDB 테이블 만들기 DynamoDB 2
    • 테이블의 이름과 필수적인 기본키를 정해 줍니다. 추가적으로 정렬키가 필요한경우 추가해 주시면 됩니다.
  • DynamoDB 테이블 생성 완료 DynamoDB 3
    • 위의 생성 버튼을 클릭하면 DynamoDB 생성이 완료 됩니다,

DynamoDB 4 - 또한 위의 항목에서 테이블에 저장된 값들을 볼 수 있으며, 항목 생성 또한 가능합니다. 추가적으로 측정치, 알람, 용량, 인덱스 등의 값을 볼수 있습니다.

태그:

카테고리:

업데이트: