데브옵스
Monstache로 DocumentDB와 OpenSearch 동기화하기
두줄요약
DocumentDB에 적재한 상품 데이터를 OpenSearch로 동기화하기 위해 Monstache를 도입했습니다. 변경 스트림 설정과 타임아웃 조정으로 실시간 조회와 운영 확인까지 해결했습니다.
문제 상황
- 오프라인 매장·온라인몰 상품 데이터가 시스템별로 분산되어 통합 관리 필요
- 역정규화된 상품 데이터를 DocumentDB에 적재했지만 대량 조회 TPS 부족으로 OpenSearch 동기화 필요
- 혼자 운영 가능한 오픈소스 동기화 도구 탐색 필요
원인 분석
- 다양한 상품 정보 조합 요구로 요청·응답 형식이 계속 바뀔 가능성
- DocumentDB 단독으로는 부하테스트 기준 성능 충족 어려움
- 동기화 상태 확인과 필터링까지 함께 처리할 도구 필요
해결 방법
- MongoDB/DocumentDB 데이터를 OpenSearch로 실시간 동기화하는 Monstache 채택
- config.toml로 연결 정보, 동기화 범위, gzip, oplog 인덱싱 등 설정
- DocumentDB 변경 스트림 활성화와 readPreference=primary 적용
- elasticsearch-healthcheck-timeout 조정으로 연결 문제 해결
성능/운영 포인트
- OpenSearch 동기화로 대량 조회 제공 경로 확보
- --enable-http-server와 /stats로 동기화 상태 확인
- EC2 IAM Role과 Datadog 모니터·대시보드로 운영 안정성 확보
적용해볼 점
- DocumentDB 기반 데이터 제공 시 OpenSearch 동기화 아키텍처 검토
- 운영 환경에서는 IAM Role 같은 안전한 인증 방식 우선 고려
- 변경 스트림과 헬스체크 설정을 함께 점검
