도입 배경
- RDB에 저장되어있는 게시글을 query select 로 검색할 시 검색된 데이터의 페이지네이션 에서 검색 데이터의 뒤로 갈수록 성능이 현저하게 떨어져서
- 검색 기능의 알고리즘에 대해 고민을 하다가
위의 상황들로 ElasticSearch를 맛보기만 해보려고 했었다. 하지만..
리스크
ElasticSearch 는 생각보다 가볍지도 않고 쉽지도 않고 간편하지도 않다.. 다방면적으로 불편한것이 가득했지만, 게시글 검색에서의 성능을 위해 어쩔 수 없이 도입을 결정했다.
우선 인프라를 구성하는데에도 생각보다 진입장벽이 높다.
- RDB에 있는 데이터를 ElasticSearch에 적재해서 가공한 후 사용해야함.
- RDB에 있는 데이터를 어떻게 마이그레이션 할 것 인지
- 데이터 정합성에 대해 어떤방식을 통해 해결할 것 인지
- ElasticSearch에 적재할 데이터는 어떤방식으로 가공할 것 인지
- RDB에 신규로 들어오는 데이터는 어떻게 동기화할 것 인지
- Logstash는 어떻게 구성할 것 인지
- ElasticSearch 의 검색 알고리즘을 어떻게 구성할 것 인지 (match 쿼리와 같은 기능의 활용 정도)
ElasticSearch 를 도입하기전 간단하게 ElasticSearch에 대해 개념 정리를 해보았다.
환경구성