Elasticsearch Introduction

특징

검색 엔진

분산 처리

고가용성 제공

수평적 확장성

JSON 기반의 REST API 제공

데이터 안전성

다양한 플러그인을 통한 기능 확장 지원

준실시간 검색

트랜잭션이 지원되지 않음

사실상 조인을 지원하지 않음

사용 사례

Read Model (CQRS의 핵심)

개념: 쓰기 DB(PostgreSQL 등)와 조회 DB(ES)를 분리하는 전략입니다. 가치: RDB는 트랜잭션과 무결성에만 집중하고, ES는 복잡한 조인이나 대량 조회를 전담합니다. 시스템 전체의 **처리량(Throughput)**이 극대화됩니다.

개념: 텍스트 데이터의 형태소 분석, 유사도 점수(Relevance Score) 산출. 가치: “내가 찾는 게 정확히 뭔지 몰라도” 결과가 나오는 경험을 제공합니다. 오타 교정, 동의어 처리 등 **사용자 경험(UX)**의 완성도를 결정합니다.

분산 추적 (Distributed Tracing)

개념: 여러 마이크로서비스를 거치는 하나의 요청을 trace_id로 추적합니다. 가치: “A 서비스에서 에러가 났는데, 원인은 저 멀리 있는 C 서비스였다”는 사실을 1초 만에 찾아낼 수 있게 해줍니다. 장애 전파 차단의 핵심입니다.

로그 통합 (Log Aggregation)

개념: 수백 대 서버의 텍스트 로그 파일을 한곳으로 모아 인덱싱합니다. 가치: 서버에 일일이 접속해서 tail -f를 칠 필요가 없습니다. 키바나(Kibana)에서 전체 서버 로그를 구글링하듯 검색할 수 있습니다.

라이선스 정책

실습 환경 구축