✅ 엘라스틱서치(Elasticsearch)는 오픈소스 기반의 분산형 검색 및 분석 엔진입니다.
데이터의 빠른 검색, 저장, 분석을 지원하며, JSON 형식의 RESTful API를 통해 데이터를 처리합니다.
주로 로그 분석, 실시간 검색, 데이터 모니터링 등에서 많이 사용되며, Elastic Stack(ELK)의 핵심 구성 요소입니다.
📌 엘라스틱서치 개요
- 분산 검색 엔진: 대용량 데이터를 분산 저장하고 빠르게 검색합니다.
- RESTful API 기반: HTTP를 통해 요청 및 응답이 JSON 형식으로 이루어집니다.
- NoSQL 데이터베이스: 스키마리스(schema-less) 구조로 문서 기반 저장소입니다.
- 실시간 데이터 분석: 대량의 데이터를 빠르게 인덱싱하고 분석합니다.
🔎 주요 특징
1️⃣ 분산형 구조
- 엘라스틱서치는 데이터를 노드(Node)와 클러스터(Cluster) 구조로 관리합니다.
- 데이터가 분산 저장되므로 확장성과 고가용성이 뛰어납니다.
구성 요소:
- 노드(Node): 엘라스틱서치 실행 단위로 데이터를 저장하고 검색합니다.
- 클러스터(Cluster): 여러 노드가 모여 하나의 클러스터를 형성합니다.
- 샤드(Shard): 인덱스 내 데이터를 작은 단위로 분할하여 저장합니다.
- 레플리카(Replica): 샤드의 복제본으로, 장애 대비 및 읽기 성능 향상에 사용됩니다.
2️⃣ JSON 기반 RESTful API
모든 요청과 응답은 JSON 형식으로 이루어집니다.
예시: 문서 인덱싱
POST /my-index/_doc/1
{
"name": "John Doe",
"age": 30,
"city": "Seoul"
}
응답:
{
"_index": "my-index",
"_type": "_doc",
"_id": "1",
"_version": 1,
"result": "created"
}
3️⃣ 인덱스(Index)
- 데이터가 저장되는 기본 단위입니다.
- 엘라스틱서치에서는 데이터를 문서(Document) 단위로 저장하고 인덱스에 색인화합니다.
인덱스 생성 예시:
PUT /my-index
4️⃣ 강력한 검색 기능
- 전체 텍스트 검색(Full-text Search)
- 필터링 및 정렬
- 복잡한 쿼리(Query DSL): 조건을 조합한 다양한 검색 쿼리를 작성할 수 있습니다.
예시: 검색
GET /my-index/_search
{
"query": {
"match": {
"name": "John"
}
}
}
5️⃣ 실시간 분석 및 집계(Aggregation)
- 데이터를 그룹화하거나 통계 분석을 수행하는 기능을 제공합니다.
- 집계는 데이터의 평균, 합계, 그룹별 통계를 구할 수 있습니다.
예시: 집계(Aggregation)
GET /my-index/_search
{
"size": 0,
"aggs": {
"average_age": {
"avg": {
"field": "age"
}
}
}
}
응답:
{
"aggregations": {
"average_age": {
"value": 30.0
}
}
}
6️⃣ 확장성과 고가용성
- 샤드와 레플리카를 통해 데이터를 수평적으로 확장하고 장애 복구를 지원합니다.
- 노드를 추가하면 클러스터가 자동으로 확장됩니다.
🛠️ 엘라스틱서치의 주요 활용 사례
1. 실시간 로그 분석
- Elastic Stack(ELK)의 Logstash를 통해 로그를 수집하고 Kibana로 시각화합니다.
- 실시간으로 로그를 검색 및 분석할 수 있습니다.
2. 검색 엔진
- 웹사이트, 애플리케이션 내 빠른 검색 기능 구현
- 자동 완성, 추천 검색어 기능 지원
3. 데이터 모니터링
- 시스템, 애플리케이션의 성능 모니터링
- 대시보드(예: Kibana)를 통해 시각화
4. 비즈니스 인텔리전스(BI)
- 데이터 분석 및 통계를 기반으로 의사결정에 활용
5. 보안 분석
- 보안 로그 수집 및 이상 징후 탐지
🚀 엘라스틱서치의 생태계: ELK Stack
Elasticsearch
- 데이터를 저장, 검색, 분석하는 핵심 엔진
Logstash
- 데이터 수집 및 변환을 담당하는 파이프라인 도구
Kibana
- Elasticsearch 데이터를 시각화하는 대시보드 도구
Beats
- 경량 데이터 수집기(파일 로그, 메트릭 등)
⚙️ 설치 및 실행
1. 다운로드 및 설치
- Elasticsearch 다운로드 페이지에서 패키지를 다운받아 설치합니다.
2. 실행
./bin/elasticsearch
3. 확인
브라우저에서 http://localhost:9200로 접속합니다.
정상적으로 실행되면 JSON 형태의 응답이 표시됩니다.
🎯 정리
Elasticsearch는 실시간 검색과 분석을 지원하는 분산형 엔진으로,
대용량 데이터를 빠르게 처리하고 확장성과 고가용성을 제공합니다.
핵심 기능
- 강력한 검색: 전체 텍스트 검색과 필터링
- 데이터 분석: 집계(Aggregation) 기능 제공
- 분산 구조: 확장성과 고가용성 보장
- ELK 스택 통합: Logstash, Kibana와 함께 강력한 시각화와 분석 지원
활용 사례로는 로그 분석, 검색 엔진, 시스템 모니터링 등이 있습니다.
'Microservices Architecture' 카테고리의 다른 글
Circuit Breaker(서킷 브레이커) (1) | 2024.12.13 |
---|---|
폴백(Fallback) (0) | 2024.12.13 |
12 팩터 앱(12 Factor App) (0) | 2024.12.10 |
스프링 클라우드 패턴 (0) | 2024.12.10 |
Resilience4j (2) | 2024.12.09 |