Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ElasticSearch
- 알고리즘정렬
- 자바
- JavaScript
- 클린아키텍처
- Sort
- 스프링 핵심원리
- 자바스크립트
- 티스토리챌린지
- 예제로 배우는 스프링 입문
- 엘라스틱서치
- 카카오
- Spring
- 스프링
- 이펙티브 자바
- 스프링핵심원리
- 이펙티브자바
- 스프링부트
- effectivejava
- 오블완
- Effective Java
- 카카오 면접
- kubernetes
- Effective Java 3
- 김영한
- 이차전지관련주
- 코딩테스트
- 알고리즘
- k8s
- java
Archives
- Today
- Total
Kim-Baek 개발자 이야기
Elastic Search 란? 장단점 본문
Elastic Search(엘라스틱서치) 개요
엘라스틱서치(Elastic Search)는 오픈 소스 분산 검색 및 분석 엔진으로, Apache Lucene 기반으로 개발되었습니다. 실시간으로 대용량 데이터를 검색하고 분석할 수 있으며, 주로 로그 분석, 실시간 애널리틱스, 텍스트 검색, 보안 모니터링 등 다양한 분야에서 활용됩니다. 엘라스틱서치는 **Elastic Stack(옛칭 ELK Stack)**의 핵심 컴포넌트로, Logstash와 Kibana와 함께 사용되어 데이터 수집, 변환, 시각화를 효과적으로 처리할 수 있습니다.
주요 특징:
- 분산 구조:
- 데이터를 여러 노드에 분산 저장하여 확장성과 고가용성을 보장합니다.
- 실시간 검색 및 분석:
- 실시간으로 데이터를 인덱싱하고 검색할 수 있어, 빠른 데이터 처리와 분석이 가능합니다.
- RESTful API:
- HTTP 기반의 RESTful API를 제공하여 다양한 프로그래밍 언어와 쉽게 통합할 수 있습니다.
- 다양한 데이터 타입 지원:
- 구조화된 데이터뿐만 아니라 비정형 데이터도 효과적으로 저장하고 검색할 수 있습니다.
- 강력한 검색 기능:
- 풀 텍스트 검색, 필터링, 집계, 추천 등 다양한 검색 기능을 제공합니다.
- 확장성:
- 클러스터의 노드를 추가하여 데이터 처리 능력을 손쉽게 확장할 수 있습니다.
Elastic Search의 장점
- 고속 검색 및 인덱싱:
- Lucene 기반의 효율적인 인덱싱과 검색 알고리즘으로 대용량 데이터에서도 빠른 처리 속도를 유지합니다.
- 확장성 및 유연성:
- 클러스터를 구성하여 필요에 따라 손쉽게 확장할 수 있으며, 다양한 데이터 소스와 통합이 용이합니다.
- 실시간 데이터 처리:
- 실시간으로 데이터를 인덱싱하고 검색할 수 있어, 실시간 애널리틱스 및 모니터링에 적합합니다.
- 강력한 집계 기능:
- 복잡한 데이터 분석을 위해 다양한 집계(aggregations) 기능을 제공하여 데이터에서 유의미한 인사이트를 도출할 수 있습니다.
- 오픈 소스 및 커뮤니티 지원:
- 오픈 소스 프로젝트로서 활발한 커뮤니티 지원과 풍부한 플러그인을 통해 기능을 확장할 수 있습니다.
- 로그 및 이벤트 데이터 처리:
- Logstash, Beats와의 통합을 통해 다양한 로그와 이벤트 데이터를 효율적으로 수집하고 처리할 수 있습니다.
- 다양한 시각화 도구와의 통합:
- Kibana와의 연동을 통해 데이터 시각화 및 대시보드 작성을 손쉽게 할 수 있습니다.
- 쉬운 설정 및 배포:
- YAML 기반의 설정 파일로 간단하게 설정할 수 있으며, Docker 등 컨테이너 환경에서도 쉽게 배포할 수 있습니다.
Elastic Search의 단점
- 자원 소모:
- 대용량 데이터를 처리하기 위해 메모리와 CPU 자원을 많이 소모할 수 있습니다. 특히 JVM 기반이기 때문에 메모리 관리가 중요합니다.
- 복잡한 설정 및 관리:
- 클러스터 구성, 노드 관리, 리소스 튜닝 등이 복잡할 수 있으며, 전문적인 지식이 필요합니다.
- 보안 취약점:
- 기본 설정 시 보안이 충분히 강화되어 있지 않아, 잘못된 설정으로 인해 데이터 유출 등의 보안 문제가 발생할 수 있습니다. 별도의 보안 설정이 필요합니다.
- 데이터 일관성:
- 네트워크 지연이나 장애 시에 데이터 일관성을 유지하기 어려울 수 있으며, eventual consistency 모델을 사용하기 때문에 실시간 일관성이 요구되는 애플리케이션에 적합하지 않을 수 있습니다.
- 구조화된 쿼리에 적합하지 않음:
- SQL 기반의 관계형 데이터베이스에 비해 복잡한 조인 연산이나 트랜잭션 처리에는 적합하지 않습니다.
- 버전 호환성 문제:
- 버전 업그레이드 시 클러스터 내 노드 간의 호환성 문제가 발생할 수 있어, 업그레이드 과정이 복잡하고 주의가 필요합니다.
- 학습 곡선:
- Elastic Search의 다양한 기능과 쿼리 DSL(Domain Specific Language)을 익히는 데 시간이 소요될 수 있습니다.
- 백업 및 복구:
- 대용량 데이터의 백업과 복구 과정이 복잡할 수 있으며, 효율적인 백업 전략이 필요합니다.
Elastic Search의 활용 사례
- 로그 및 이벤트 데이터 분석:
- 서버 로그, 애플리케이션 로그, 보안 이벤트 등을 수집하고 실시간으로 분석하여 이상 징후를 모니터링합니다.
- 사이트 검색 기능:
- 웹사이트나 애플리케이션 내에서 고속의 검색 기능을 제공하여 사용자 경험을 향상시킵니다.
- 실시간 애널리틱스:
- 대시보드와 시각화 도구를 통해 실시간으로 데이터를 분석하고 인사이트를 도출합니다.
- 보안 분석:
- 보안 로그를 분석하여 잠재적인 위협을 식별하고 대응합니다.
- 전자 상거래 추천 시스템:
- 사용자 검색 패턴과 행동 데이터를 분석하여 개인화된 제품 추천을 제공합니다.
- 인프라 모니터링:
- 시스템 성능, 네트워크 트래픽 등을 모니터링하여 장애를 조기에 감지합니다.
반응형
'개발 > Elasticsearch' 카테고리의 다른 글
[Elasticsearch] Aggregation (0) | 2020.08.12 |
---|---|
[Elasticsearch] Mapping API (0) | 2020.08.11 |
[Elasticsearch] Index API (0) | 2020.08.10 |
[Elasticsearch] 기본 개념, Concept, 용어 (0) | 2020.08.09 |
Comments