메시지 전송 트래픽 100배에도 끄떡 없는 User 테이블로 뜯어고치기 (2)
백엔드
메시지 전송 트래픽 100배에도 끄떡 없는 User 테이블로 뜯어고치기 (2)
두줄요약
DynamoDB Export/Glue/Import로 UserBadge를 분리해 16억 건 규모 마이그레이션을 수행했습니다. 비용은 36% 줄고 시간은 7일에서 약 6시간으로 단축했습니다.
문제 상황
- 16억 8천만 레코드의 User 테이블에서 Badge 업데이트가 병목을 유발해 전체 테이블 성능 저하
- 메시지 전송 트래픽 증가로 Badge 쓰기 부담이 커져 User 테이블과의 충돌, GSI Back-Pressure 우려
해결 방법
- UserBadge 분리를 위해 DynamoDB Export, AWS Glue ETL, DynamoDB Import 기반 온라인 마이그레이션 수행
- LWW 전략과 userVersion 비교로 Dual Write 및 병합 구간의 데이터 정합성 확보
- NULL 제거, 데이터 품질 검증, Worker/Timeout 튜닝으로 대용량 ETL 안정화
성능/운영 포인트
- RCU/WCU를 쓰지 않는 Export/Import로 프로덕션 영향 최소화
- 실패한 단계만 재시도 가능한 관리형 파이프라인으로 운영 리스크 축소
- 비용은 36% 절감, 총 소요 시간은 7일에서 약 6시간으로 단축
적용해볼 점
- 쓰기 패턴까지 고려한 테이블 분리와 마이그레이션 설계
- 대용량 전환 시 관리형 서비스 조합과 정량적 근거를 활용한 의사결정
