핵심 요약
롯데ON이 DynamoDB의 역압력 아키텍처를 Kafka와 Redis로 구현해 실시간 부하를 제어하고 API 안정성과 비용 효율성을 개선했습니다.
구현 방법
- CloudWatch로 DynamoDB 상태 모니터링, 임계치 초과 시 SNS 알람 발행
- Redis Stream으로 알람을 필요 서비스에 확산
- 제어 서비스가 수신한 신호로 배치 컨슈머를 pause/resume 하여 처리량 관리
- Spring Kafka 및 KafkaListenerEndpointRegistry를 이용한 역압력 대상 컨슈머 등록 및 관리
- onPartitionsAssigned에서 신규 파티션에 대해 역압력 상태를 유지하도록 처리
주요 결과
- 읽기 처리량(WCU) 11% 감소, 쓰기 처리량(RCU) 47.5% 감소
- 새벽 배치 부하 억제에 따른 API 지연 감소 및 Auto-Scale 비용 절감

