후기 서비스 AWS Opensearch 도입기
김형준 · 컬리 · 컬리 기술 블로그
소개
위기에서 기회를 만들어 낸 후기 서비스 이야기
AI 핵심 요약
MySQL 5.6에서 5.7로 후기 데이터를 무중단 마이그레이션하던 중, 과도한 IN절과 filesort로 조회 지연이 2~3배 늘어 기존 DB를 계속 사용할 수 없게 됐다. 팀은 검색 요구사항과 AWS 중심 인프라를 고려해 AWS OpenSearch를 선택하고, 1억 건 가까운 데이터를 이벤트 기반으로 역정규화해 적재하는 CQRS·Materialized View 구조를 5일 안에 도입했다. Ngrinder, Datadog APM, OpenSearch 모니터링 지표를 함께 활용해 인스턴스 사양을 정하고 Canary 배포를 진행한 결과, 최대 지연 시간이 17초에서 200ms로 줄고 MySQL 지표도 안정화됐다. 도입 후에는 샤드와 노드 상태를 모니터링하고 버전 충돌 및 은전한닢 형태소 분석기 오프셋 문제를 해결했으며, 서비스 데이터를 시각화해 데이터 기반 의사결정의 중요성도 확인했다.
- 쿼리 병목이 특정 DB 버전의 옵티마이저 설정만으로 해결되지 않는다면, 검색 요구사항과 데이터 접근 패턴을 함께 살펴 대안을 검토한다.
- CQRS에서 Materialized View를 선택하면 원천 데이터와 조회용 데이터를 분리하고, 이벤트 기반으로 조회 모델을 갱신할 수 있다.
- 부하 테스트는 Ngrinder 결과만 보지 말고 APM과 관리형 서비스 모니터링 지표를 운영 환경과 비교해 인스턴스 사양을 정한다.
- OpenSearch 운영에는 샤드 분포, 노드 자원, JVM·GC, 지연 시간 등을 확인하는 대시보드와 알림이 필요하다.
- 형태소 분석기의 토큰 옵션은 검색 품질뿐 아니라 오프셋 오류에도 영향을 주므로 실제 검색 사례로 검증한다.
비슷한 학습 자료
늘어가는 조회트래픽 Elasticsearch로 분산시키기
엔지니어링데이 2025 · YouTube
고객은 절대 기다려주지 않는다: 빠른 데이터 서빙으로 고객 만족도를 수직 상승 시키는 법
이세찬 · 토스 기술 블로그
nginx 설정 없이 우아하게 서비스 점검하기 (上)
이창섭 · 컬리 기술 블로그
DevOps 엔지니어의 Redis Test 분투기 - Part 1
이규원 · 컬리 기술 블로그
Vertex AI Search를 활용한 결과 없는 검색 개선하기
권수영, 한수진 · 컬리 기술 블로그
컬리의 BigQuery 도입기 - 2부
허재진 · 컬리 기술 블로그