![[ElasticSearch] 기본 개념 및 설치 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAOpX5%2FbtsOjb0fB7L%2FRvMoT7DmY8SlrFc1Jz61r1%2Fimg.png)
[ElasticSearch] 기본 개념 및 설치 방법Back-End/ElasticSearch2025. 5. 30. 13:44
Table of Contents
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.
ElasticSearch
기본 개념
ElasticSearch는 실시간 분산 검색 및 분석 엔진으로, 대용량 데이터를 빠르게 저장하고 검색·분석할 수 있는 시스템이다.
기본적으로 Apache Lucene 기반이며, JSON 기반의 RESTful API로 동작한다.
Elasticsearch는 검색, 데이터 분석에 최적화된 데이터베이스이다.
Elasticsearch는 검색을 잘하는 데이터베이스라고 보면 된다. 정확히 말하면, “많은 데이터를 빠르게 검색하거나 분석”하려고 만든 시스템이다.
보통 데이터베이스는 “데이터를 보고 찾는” 구조인데, ElasticSearch는 “찾기 좋게 색인해놓고 나중에 빠르게 꺼내는” 구조이다.
또한 데이터가 많으면 한 서버에서 감당 못할 수 있기 때문에 자동으로 여러 서버에 나눠 저장하고 나눠 검색한다.
Elasticsearch는 검색에 최적화된 기능을 많이 가지고 있다.
- 동의어를 고려한 검색
- 오타를 고려한 검색
- 검색어 자동 완성 기능
- 검색어와 가장 관련성이 높은 순서대로 데이터를 조회하는 기능
주요 활용 사례
최근에는 ElasticSearch를 크게 2가지 용도로 사용한다.
데이터 수집 및 분석
- Elasticsearch는 대규모 데이터(ex. 로그 등)를 수집 및 분석하는 데 최적화되어 있다.
- 주로 Elasticsearch(데이터 저장), Logstash(데이터 수집 및 가공), Kibana(데이터 시각화)를 같이 활용해 데이터를 수집 및 분석한다.
검색 최적화
- Elasticsearch는 데이터가 많더라도 뛰어난 검색 속도를 가지고 있고, 오타나 동의어를 고려해서 유연하게 검색할 수 있는 기능을 가지고 있다.
- 쿠팡이나 배달의민족의 검색 기능도 전부 Elasticsearch를 활용해 구현되어있다.
ElasticSearch 설치
도커가 기본적으로 설치되어있다고 가정
compose.yml
services: elastic: image: docker.elastic.co/elasticsearch/elasticsearch:8.17.4 # Elastic 8.17.4 버전의 이미지 ports: - 9200:9200 # 9200번 포트에서 Elasticsearch 실행 environment: # 아래 설정은 개발/테스트 환경에서 간단하게 테스트하기 위한 옵션 (운영 환경에서는 설정하면 안 됨) - discovery.type=single-node # 단일 노드 - xpack.security.enabled=false # 보안 설정 - xpack.security.http.ssl.enabled=false # 보안 설정 |
Postman으로 9200번 포트로 get 요청을 보내면 아래와 같이 나오면 설치가 완료된 것이다.
'Back-End > ElasticSearch' 카테고리의 다른 글
[ElasticSearch] 데이터 타입(data type)과 매핑(mapping) (0) | 2025.05.31 |
---|---|
[ElasticSearch] 애널라이저(Analyzer) (0) | 2025.05.31 |
[ElasticSearch] 역인덱스(Inverted Index) (0) | 2025.05.31 |
[ElasticSearch] 인덱스, 도큐먼트, 매핑, 필드 (0) | 2025.05.30 |
[ElasticSearch] 작동 방식 및 Kibana (0) | 2025.05.30 |