Data Engineering/Elasticsearch

[Opensearch] Opensearch 개념 정리

seoraroong 2025. 2. 11. 21:17

Opensearch

Opensearch는 AWS가 Elasticsearch 7.10을 기반으로 fork한 검색 및 분석 엔진이다.

기본적으로 대량의 데이터를 저장, 검색, 분석하는 데 사용되며, 분산 검색 엔진 기능을 제공한다.

https://opensearch.org/

 

OpenSearch

OpenSearch is a community-driven, Apache 2.0-licensed open source search and analytics suite that makes it easy to ingest, search, visualize, and analyze data.

opensearch.org

 

주요 특징

- Elasticsearch와 호환 -> 기본적인 API 및 사용법이 유사하다.

- 100% 오픈 소스 -> Apache 2.0 License

- 내장 보안 기능 -> Elasticsearch에서는 유료였던 X-Pack 기능이 일부 내장되어 있다.

- 확장 가능한 플러그인 지원 -> 보안, 모니터링, 머신러닝 등

- 대체 UI -> Elastic Stack의 Kibana 대신 Opensearch Dashboards 사용

 

Opensearch vs. Elasticsearch

Elasticsearch 최신 버전에서는 라이선스 제한이 많아졌고, Opensearch는 무료로 기능을 제공하면서 AWS 주도로 발전 중이다.

  Opensearch Elasticsearch
출시 주체 AWS  Elastic N.V.
라이선스 Apache 2.0 Elastic License 
보안 기능 기본 제공 유료 (X-Pack)
Query DSL Elasticsearch 7.0 기준 동일 최신 버전에서 변경
UI Opensearch DashBoards Kibana
ML 지원 Anomaly Detection 제공 유료 기능 포함

 

 

Opensearch 주요 개념

(1) 클러스터 구조

Opensearch는 분산 아키텍처를 사용하여 대량 데이터를 효울적으로 저장하고 검색한다.

클러스터는 여러 개의 노드로 구성되며, 각 노드는 특정 역할을 수행한다.

 

- 노드 유형

* Master Node: 클러스터 상태 관리, 노드 추가/제거, 인덱스 관리

* Data Node: 실제 데이터를 저장하고 검색 요청을 처리

* Ingest Node: 데이터 전처리 (파이프라인) 수행

* Coordinating Node: 검색 요청을 라우팅하고 결과를 종합

 

- 샤드(Shard)와 복제본(Replica)

* 샤드 (Shard): 대량 데이터를 분할하여 저장하는 단위

* 복제본 (Replica): 샤드의 사본으로, 장애 발생 시 데이터 보호 및 성능을 향상

 

(2) 문서(Document)와 인덱스(Index)

Opensearch에서는 데이터를 JSON 문서 형태로 저장하고, 인덱스를 통해 검색 성능을 최적화한다.

 

- 인덱스 관련 개념

* Mapping: 문자열, 숫자, 날짜 등의 필드 타입을 정의

* Analyzer: 텍스트를 토큰화하고 처리하는 방법을 설정

* Dynamic Mapping: 자동으로 필드 타입을 지정

 

(3) 검색 (Query DSL)

Opensearch에서는 Query DSL을 사용해 데이터를 검색한다. (Elasticsearch 7.10의 쿼리 방식과 동일)

 

- 예시

GET opensearch_index/_search
{
	"query": {
    	"match": {
        	"title": "Opensearch"
        }
    }
}

 

* match: 특정 필드에서 키워드 검색

* bool: AND, OR 조건 조합

* range: 숫자나 날짜 범위 검색

 

(4) Opensearch DashBoards

Elasticsearch의 Kibana를 대체하는 UI로, 데이터 시각화, 인덱스 관리, 대시보드 기능을 제공한다.

로컬에서는 기본포트로 5601을 사용한다.

 

- 주요 기능

* 쿼리 작성 및 테스트

* 로그 및 메트릭 모니터링

* 대시보드 생성

* 보안 설정 관리

 

(5) Opensearch Plugin

Security: 인증, 권한 관리. Role-based Access Control(RBAC)

Alerting: 특정 조건 발생 시 알림을 보내는 기능

Anomaly Detection: 머신 러닝을 활용한 이상 탐지 기능

Index Management: 인덱스 자동 관리 

SQL Plugin: SQL 쿼리 사용 가능