Server Programming/DevOps

AWS - DynamoDB

Dev.BeryL 2022. 2. 9. 22:17
728x90

DynamoDB

  • NoSQL(Not Only SQL) 데이터베이스
  • 매우 빠른 쿼리속도
  • Auto-Scaling 긴능 탑재 → 데이터의 크기가 커질 수록 테이블의 크기가 알아서 조정 (비용관리에 좋다)
  • Key-Value 데이터 모델 지원
  • 테이블 생성시 스키마 생성이 필요 없음 → 데이터가 들어올 때 알아서 스키마를 생성함
  • 모바일, 웹, IoT 데이터 사용시 추천됨 → 실시간으로 들어오는 데이터를 관리할때 매우 좋음
  • SSD 스토리지 사용 → 따라서, 읽고 쓰기가 매우 빠름
  • 테이블(Table) 로 구성되어있음
  • 내부에는 아이템(items) - 행(row)과 개념이 비슷하다.
  • 특징(Attributes) - 열(column)과 개념이 비슷하다.
  • Key-Value (key : 데이터의 이름, Value : 데이터 자체)

ex ) XML, Json

 

DynamoDB - PK

  • PK를 사용하여 데이터 쿼리
  • 2가지 PK유형
    • 파티션키 (Partition Key)
      • 고유 특징(Unique Attribute)
      • 실제 데이터가 들어가는 위치를 결정해줌
      • 파티션 키 사용시 동일한 두개의 데이터가 같은 위치에 저장될 수 없음 → 파티션 키는 중복될 수 없다.
    • 복합키 (Composite Key)
      • 파티션키 + 정렬키
      • ex ) : 똑같은 고객이 다른 날짜에 다른 물건을 구매
      • 파티션키 : 고객 아이디, 정렬키 : 날짜
      • 같은 파티션키의 데이터들은 같은 장소에 보관, 그 다음 정렬키에 의해 데이터가 정렬됨

데이터 접근 관리

  • AWS IAM 으로 관리가 가능
    • 테이블 생성과 접근 권한을 부여할 수 있음
    • 특정 테이블만, 특정 데이터만 접근 가능케 해주는 특별한 IAM 역할 존재
반응형

'Server Programming > DevOps' 카테고리의 다른 글

AWS - DynamoDB (Query VS Scan)  (0) 2022.02.12
AWS - DynamoDB (Index)  (0) 2022.02.09
AWS - CloudFront  (0) 2022.02.08
AWS - Lambda  (0) 2022.02.08
AWS - CloudWatch Alarm  (0) 2022.02.07