DynamoDB 핫 파티션을 해결하는 3가지 방법 (2): 인덱스 테이블로 GSI 떼어내기 구현편
백엔드
DynamoDB 핫 파티션을 해결하는 3가지 방법 (2): 인덱스 테이블로 GSI 떼어내기 구현편
두줄요약
DynamoDB managed GSI의 핫 파티션을 피하기 위해 인덱스 테이블 분리와 전파 파이프라인 구현 과정을 다뤘습니다. 운영 중에는 버스트 제어와 SQS 적체를 조정해 안정적으로 변경분을 반영했습니다.
핵심 내용
- DynamoDB managed GSI의 핫 파티션을 피하기 위해 GSI 기능을 별도 인덱스 테이블로 분리한 구현 및 운영 과정 정리
- DynamoDB Export, Glue ETL, DynamoDB Import로 기존 데이터를 옮기고, Kinesis Streams와 ch-flow-shard로 변경분을 추적해 인덱스 테이블을 채움
- 인덱스 생성 조건, 키 변경/삭제 처리, 늦게 도착한 이벤트 방지, sequence number 기반 조건부 쓰기까지 GSI 동작을 직접 재현
- Token Bucket 버스트와 SQS 적체 문제를 Leaky Bucket으로 조정해 쓰기 속도를 안정화하고, WriteThrottleEvents 0회와 전파 지연 P95 500ms/P99 950ms 성과 확인
