
백엔드
자비스앤빌런즈의 Amazon DynamoDB 도입기 – 외부 연계 데이터 저장과 약관 서비스 개선
두줄요약
Aurora MySQL에 몰리던 외부 연계 데이터와 약관 동의 데이터를 DynamoDB와 S3로 분리해 저장 구조를 개선했습니다. 이를 통해 읽기 부하와 처리 지연을 줄이고, 트래픽 증가에도 안정적인 운영 기반을 마련했습니다.
문제 상황
- 종합소득세 신고 기간 트래픽 급증으로 Aurora MySQL 기반 저장 구조의 I/O 부하와 비용 증가
- 외부 연계 요청/응답 JSON 대용량 저장, Binary log 동기화 지연, 동일 클러스터 내 서비스 영향 확산
- 메시징 서비스의 알림 수신 동의 조회가 잦아 REST API 연동이나 데이터 동기화 방식 모두 비효율적
원인 분석
- JSON 데이터가 최대 2.5MB 수준으로 커져 RDBMS와 바이너리 로그 처리 부담 증가
- 읽기 중심의 동의 여부 조회를 매번 API로 처리하면 성능과 비용이 비효율적
- 동기화 방식은 중복 데이터와 일관성 관리 부담을 유발
해결 방법
- 메타 정보는 DynamoDB, 대용량 JSON은 S3로 분리 저장하는 구조로 전환
- 약관 서비스의 수신 동의 데이터를 DynamoDB에 저장해 메시징 등 연계 서비스가 직접 조회
- GSI와 sparse index로 어드민 조회를 최적화하고, 쓰기 직후 조회에는 ConsistentRead 재조회 방어 로직 적용
성능/운영 포인트
- 외부 연계 저장 구조 전환 후 트래픽 증가에도 성능을 일정하게 유지
- 수신 동의 이관 후 Aurora 읽기 부하 30~40% 감소, 메시지 처리 속도 최대 5배 개선
- Warm throughput 사전 조정으로 이벤트성 트래픽을 대비하고 쓰로틀링 위험을 완화
