DynamoDB CRUD 작업과 Query vs Scan

AWS 데이터 스토어 활용

Dunieski Otano

AWS Solutions Architect

비용이 큰 실수

  • 개발자가 Scan으로 사용자 한 명을 조회
  • 아이템 100만 개의 테이블 전체를 읽음
  • 청구 금액: 단 한 번의 조회에 $500
  • Query를 사용했다면 $0.01

실수

AWS 데이터 스토어 활용

DynamoDB CRUD 작업

  • PutItem: 아이템 생성 또는 교체
  • GetItem: 기본 키로 아이템 읽기
  • UpdateItem: 특정 속성 수정
  • DeleteItem: 아이템 삭제
  • Query: 파티션 키로 아이템 조회 (효율적)
  • Scan: 테이블 전체 읽기 (비용 높음)

ops

AWS 데이터 스토어 활용

Query vs Scan: 핵심 차이점

  • Query: 파티션 키 필요, 특정 아이템 읽기
    • 빠르고 효율적이며 비용 낮음
  • Scan: 테이블 전체 읽기 후 필터링
    • 느리고 비용 높음, 가능하면 사용 지양
  • 원칙: 키를 알고 있다면 Query를 사용하세요. 그렇지 않다면 설계를 재검토하세요.

scan

AWS 데이터 스토어 활용

조건부 표현식으로 경쟁 조건 방지

  • 문제: 두 사용자가 동시에 같은 아이템을 업데이트
  • 해결책: 조건부 표현식 사용
  • 예시: 현재 값이 예상 값과 일치할 때만 업데이트

race

AWS 데이터 스토어 활용

UpdateItem 표현식: 속성 수정

  • SET: 속성 값 설정 또는 새 속성 생성
  • ADD: 숫자 증가/감소, 집합에 추가
  • REMOVE: 아이템에서 속성 삭제
  • DELETE: 집합에서 요소 제거

expressions

AWS 데이터 스토어 활용

Query와 Scan의 페이지네이션

  • 문제: 대용량 결과 집합이 1MB 한도 초과
  • 해결책: LastEvaluatedKey를 이용한 페이지네이션
  • Limit: 페이지당 아이템 수 제어
  • LastEvaluatedKey가 null이 될 때까지 반복

pagination

AWS 데이터 스토어 활용

연습해 봅시다!

AWS 데이터 스토어 활용

Preparing Video For Download...