본문으로 이동
후기 서비스 AWS Opensearch 도입기
문서

후기 서비스 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, 지연 시간 등을 확인하는 대시보드와 알림이 필요하다.
  • 형태소 분석기의 토큰 옵션은 검색 품질뿐 아니라 오프셋 오류에도 영향을 주므로 실제 검색 사례로 검증한다.