1
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 DynamoDB에서 Badge 업데이트가 스파이크로 몰리며 User 테이블 전체가 쓰로틀링되는 원인을 분석하고, 16억 레코드 규모의 안전한 테이블 마이그레이션 전략을 설계한 내용입니다.
주요 원인은 메인 테이블 WCU 산정(아이템 단위), TransactWriteItems로 인한 WCU 과다 소모, 트랜잭션 충돌 시 재시도 누적으로 판단됩니다.
두 번째 원인은 GSI 핫 파티션으로 인한 GSI 쓰로틀링과 Back-Pressure로, 특정 channelId 파티션 병목이 메인 테이블 쓰기까지 연쇄 차단시키는 구조입니다.
같은 테이블 내 아이템 분리로는 트랜잭션 충돌과 GSI Back-Pressure가 그대로라서 해결되지 않아, Badge를 별도 테이블(UserBadge)로 물리 분리하는 방식을 선택합니다.
마이그레이션은 Full Scan/Full Write 기반 java-migration의 비용·시간·휴먼에러 리스크를 이유로 DynamoDB Export/Import와 AWS Glue ETL 파이프라인으로 구성합니다.
운영 중 변경분 유실을 막기 위해 TmpUserBadge 버퍼 테이블과 Dual-Write(동기) 동기화를 포함한 온라인 마이그레이션 단계를 설계합니다.
