목록 보기
DynamoDB Limit 설정으로 RCU 97% 절감한 이야기
백엔드

DynamoDB Limit 설정으로 RCU 97% 절감한 이야기

버즈빌
버즈빌
2026년 1월 23일

두줄요약

DynamoDB 조회에서 Limit 미설정과 Strong Consistent Read가 RCU 급증의 원인이었습니다. SearchLimit 적용과 일관성 수준 조정으로 RCU를 최대 97% 절감했습니다.

문제 상황

  • DynamoDB RCU가 약 1k에서 130k/s까지 급증한 현상
  • 특정 조회 코드에서 Limit 미설정과 Strong Consistent Read 사용으로 불필요한 비용 발생
  • guregu/dynamo의 Iter 흐름과 Query 페이징 동작에 대한 오해 가능성

원인 분석

  • Limit만 사용한 경우 필터 조건에 따라 라이브러리 내부에서 API Limit이 전달되지 않을 수 있는 구조
  • Iter() 첫 호출 시 페이지 전체를 가져와, 중간에 break해도 이미 RCU가 소모되는 동작
  • 조회 대상 테이블에서 평균 300개 수준의 파티션을 광범위하게 스캔한 점

해결 방법

  • SearchLimit 적용으로 서버 측 스캔 범위 제한
  • Strong Consistent Read를 Eventually Consistent Read로 전환
  • ConsumedCapacity 로깅과 일단위 메트릭, 배포 이력 매트릭스 교차 분석으로 원인 추적

다음 읽기

#DynamoDB 주제를 다룬 다른 회사 글

DynamoDB 핫 파티션을 해결하는 3가지 방법 (3): 조회를 인덱스 테이블로 옮기기

DynamoDB GSI의 조회 경로를 인덱스 테이블과 공통 라이브러리로 전환한 사례를 정리했습니다. limit, 커서, 삭제 데이터 처리 함정을 규칙화해 GSI를 최종 제거했습니다.

채널톡
채널톡
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...