Elasticsearch Introduction
특징
검색 엔진
분산 처리
고가용성 제공
수평적 확장성
JSON 기반의 REST API 제공
데이터 안전성
다양한 플러그인을 통한 기능 확장 지원
준실시간 검색
트랜잭션이 지원되지 않음
사실상 조인을 지원하지 않음
사용 사례
Read Model (CQRS의 핵심)
개념: 쓰기 DB(PostgreSQL 등)와 조회 DB(ES)를 분리하는 전략입니다. 가치: RDB는 트랜잭션과 무결성에만 집중하고, ES는 복잡한 조인이나 대량 조회를 전담합니다. 시스템 전체의 **처리량(Throughput)**이 극대화됩니다.
검색 엔진 (Full-Text Search)
개념: 텍스트 데이터의 형태소 분석, 유사도 점수(Relevance Score) 산출. 가치: “내가 찾는 게 정확히 뭔지 몰라도” 결과가 나오는 경험을 제공합니다. 오타 교정, 동의어 처리 등 **사용자 경험(UX)**의 완성도를 결정합니다.
분산 추적 (Distributed Tracing)
개념: 여러 마이크로서비스를 거치는 하나의 요청을 trace_id로 추적합니다. 가치: “A 서비스에서 에러가 났는데, 원인은 저 멀리 있는 C 서비스였다”는 사실을 1초 만에 찾아낼 수 있게 해줍니다. 장애 전파 차단의 핵심입니다.
로그 통합 (Log Aggregation)
개념: 수백 대 서버의 텍스트 로그 파일을 한곳으로 모아 인덱싱합니다. 가치: 서버에 일일이 접속해서 tail -f를 칠 필요가 없습니다. 키바나(Kibana)에서 전체 서버 로그를 구글링하듯 검색할 수 있습니다.