
후기 서비스 AWS Opensearch 도입기
두줄요약
MySQL 조회 병목을 해결하기 위해 후기 서비스에 AWS OpenSearch를 5일 만에 도입했습니다. CQRS·이벤트 기반 구조와 모니터링으로 레이턴시를 17초에서 200ms까지 낮췄습니다.
문제 상황
- MySQL 5.7 분산 데이터베이스 전환 시 과도한 IN절과 filesort 오버헤드로 조회 레이턴시 2~3배 증가
- Aurora MySQL 호환 버전 1 종료 임박으로 원인 분석 시간 확보·MySQL 5.6 다운그레이드 모두 제약
해결 방법
- 5일 내 AWS OpenSearch 운영 환경 구축, 원천 데이터 역정규화 및 인덱싱 배포
- AWS 중심 인프라와 후기·상품 검색 요구사항을 근거로 ElasticCloud·NoSQL 대신 AWS OpenSearch 선택
- nGrinder 부하 테스트와 Datadog·OpenSearch Monitoring 비교를 통한 인스턴스 사양 결정
구조와 흐름
- CQRS와 Materialized View 패턴으로 역정규화된 후기 조회 데이터 구성
- 후기 등록·수정·삭제 이벤트 기반 OpenSearch 인덱스 추가·수정·삭제 분리
- 유저·관리자 서버의 OpenSearch 사용 통합과 원천 데이터 작업의 책임 분리
성능/운영 포인트
- Canary 배포 후 전체 적용, 최대 레이턴시 17초에서 200ms로 감소 및 MySQL 지표 안정화
- 샤드 분포, 노드 용량, CPU·Heap·Disk·JVM·GC·Latency 모니터링 대시보드와 알림 구성
- partial update의 version conflict 재시도와 은전한닢 형태소 분석기 옵션 조정

