
데브옵스
후기 서비스 AWS Opensearch 도입기
두줄요약
후기 서비스의 조회 병목을 해결하기 위해 AWS Opensearch를 도입한 사례를 정리했습니다. CQRS와 이벤트 기반 구조로 전환하고 성능 테스트와 모니터링까지 함께 적용했습니다.
문제 상황
- 후기 서비스의 조회 쿼리에서 과도한 in절과 filesort 오버헤드로 레이턴시가 급증한 상태
- MySQL 5.7로 분리한 뒤 병목이 해소되지 않아 조회용 데이터베이스로는 사용이 어려운 상황
- 무중단 마이그레이션과 운영 일정 제약 속에서 빠른 대안 도입이 필요한 상황
원인 분석
- 조회 쿼리 구조상 도메인 기능을 유지한 채 MySQL 옵티마이저 설정만으로는 성능 개선이 어려운 상태
- 후기 검색과 상품 검색 같은 요구사항에 관계형 데이터베이스보다 검색 엔진형 저장소가 더 적합한 구조
- 원천 데이터와 조회용 데이터가 섞이면 등록·수정·삭제 흐름의 복잡도와 장애 영향이 커지는 문제
해결 방법
- AWS Opensearch를 조회 및 검색 계층으로 도입하고, 후기 데이터를 역정규화해 저장하는 구조로 전환
- CQRS와 Event Driven Architecture를 적용해 원천 데이터 저장과 Opensearch 반영을 분리
- Ngrinder, Datadog, AWS Opensearch Monitoring으로 성능 테스트와 운영 지표를 함께 검증
