OpenSearchSearch EngineElasticSearch

OpenSearch

·5 min read

검색엔진 하면 떠오르는게 하나 있다.

바로 Elasticsearch

많이들 엘라스틱 서치가 오픈소스다 라고 생각하는데,

처음에는 오픈소스로 시작했다가 지금은

Elastic License라는 별개 라이선스로 변경됬다.

이유를 따지자면 AWS인데,

AWS가 Elasticsearch 기반으로 자체 서비스 제공하면서 비용 지불 없이 수익을 창출하니,

Elastic에서는 소스는 공개하는데 상업적인 클라우드 서비스에서 사용 제한하는 방식으로 대응한 것이다.

그리하여 AWS는 Elastic 소스 가져다가 커스터마이징해서 오픈소스로 제공하는 OpenSearch 프로젝트를 시작했는데 바로 오늘의 주인공이시다.

핵심 아키텍처와 구성요소

과거 엘라스틱 서치하면 ELK Stack 이라고 해서

Elasticsearch, Logstash, Kibana, Beats 구성으로 시스템이 구성됬다.

Logstash는 그대로 이용 가능하지만(Data Prepper로 대체 가능) Kibana는 이용이 불가능하기에

OpenSearch에서도 OpenSearch Dashboard(시각화 및 관리)를 제공하는 것으로 과거 Kibana를 대체했다.

오픈소스 + 대기업 지원 + 커뮤니티의 파워로

OpenSearchs는 다양한 플러그인으로 확장되는데,

보안: 인증, 역할 기반 접근 제어, 암호화, 감사 로그 등의 엔터프라이즈급 보안 기능 제공

이상 감지: 머신 러닝 기반으로 시계열 데이터에서 비정상적인 패턴이나 이상 징후 탐지

K-NN: 벡터 검색 지원 및 이미지,문서 유사도 분석, 추천 시스템 등 복잡한 검색 요구사항 처리

SQL/PPL: 데이터 쿼리 기능 및 파이프 구문으로 탐색 및 집계 지원

등 나온지 얼마 안된 기술 치고는 굉장히 많은 기능을 지원한다.

(엘라스틱 서치 본판이 잘 구성된거 + 대기업 파워는 뭔가 다른 것 같다.)

물론 성능 따지면 아직 엘라스틱서치와 비교하기에 부족한 면이 있는 것 같지만,

제법 빠르게 추격중인 것 같다.

활용 방안

규모가 규모다 보니 OpenSearch는 단순 검색 뿐만 아니라 대규모 데이터 실시간 분석 및 모니터링에 특화 되어있는데

가장 가치있다고 생각되는 활용 방안은 바로 로그다.

방대한 양의 사용 로그를 수집하고 분석하는 것으로

현재 에러 사항이나 서비스 이용 방식 등의 데이터를 분석할 수 있고,

유저가 사용하는 패턴을 검출해내서 개인화 된 이용 경험을 제공할 수 있다.

물론 Full-Text Search를 잘 제공해주는데,

검색엔진 가져다 만든 검색엔진인데 당연한 말이라서 생략하겠다.

그 외 복잡한 마이크로 서비스 아키텍쳐에서 시스템 상태를 파악하는 옵저버빌리티로도 쓰기 편하다고 하는데...

그정도 서비스를 내가 구축할 것 같지는 않아서 다루지는 않겠다.

자세한 설명은 생략한다.

요즘 바쁘기도 하고 아직 실제로 깊이 써보지는 못하고 구성만 하고 있어서 정리가 안됬기에

좀 더 써보고 나중에 추가로 한번 글을 써보고자 한다.

다만 기업들은 늘 라이선스에 대한 고민과 AWS 배포 환경을 선호하고

웹에서 검색은 떼기 어려운 분야니, 시간될 떄 프로젝트에서 한번 사용해보기를 권장한다.

← Previous
돌고 돌아 트랜스포머
Next →
엘라스틱 서치 개념 잡기