
백엔드
고객은 절대 기다려주지 않는다: 빠른 데이터 서빙으로 고객 만족도를 수직 상승 시키는 법
두줄요약
대규모 거래 데이터를 빠르게 서빙하기 위해 Elasticsearch, Druid, StarRocks를 역할별로 조합한 사례를 다뤘습니다. 집계·조인·검색을 분리하고 최적화해 응답 속도와 운영 효율을 높였습니다.
문제 상황
- 거래량 급증으로 수십억 건 규모 데이터를 안정적으로 빠르게 서빙해야 하는 과제
- MSA 전환 이후 검색, 집계, 실시간 조회, 다중 도메인 결합 요구가 함께 증가
- 원장 테이블 직접 조회 시 대량 스캔, 성능 저하, 쿼리 복잡도 증가
구조와 흐름
- 검색 요구는 Elasticsearch 색인으로 처리
- 시계열 집계와 저지연 조회는 Apache Druid로 분리
- 조인과 통합 원장은 StarRocks로 재구성
- 각 엔진의 강점을 조합한 하이브리드 데이터 서빙 구조
해결 방법
- Druid에서 메시지 발행 기반 적재와 Rollup으로 조회 성능 개선
- 파편화 탐지와 Compaction, Zookeeper 로그 보존 주기 조정으로 운영 안정성 보강
- StarRocks 도입 후 Colocation Group과 Prefix Index로 조인 성능과 스캔 범위 최적화
성능/운영 포인트
- Druid Rollup 적용으로 평균 응답 시간 수십 초에서 0.5~1초 수준으로 단축
- 로컬 스토리지와 S3 분리로 비용 절감과 AZ 분산 유연성 확보
- Prefix Index 적용으로 RawRowsRead 약 99.68% 감소
- StarRocks 최적화 후 CPU 사용률 약 81.2% 감소