AWS OpenSearch는 Elasticsearch의 오픈소스 버전으로, 대량 데이터를 빠르게 저장하고 검색하는 데 최적화된 검색 및 분석 엔진임. 로그 모니터링, 검색 시스템, 데이터 시각화 등 다양한 용도로 활용됨.
OpenSearch란?
(1) 개요
OpenSearch는 실시간으로 데이터를 검색, 필터링, 집계(aggregation)하는 데 최적화된 데이터베이스임.
(2) 어디에 사용될까?
- 로그 및 모니터링 시스템: ELK 스택, SIEM 솔루션
- 대용량 데이터 검색 엔진: 뉴스 사이트, 전자상거래 검색
- 애널리틱스 및 데이터 시각화: Kibana, OpenSearch Dashboards
OpenSearch의 핵심 개념
(1) 클러스터 (Cluster)
여러 개의 노드(서버)로 구성된 집합
데이터 노드, 마스터 노드, 코디네이터 노드로 구성됨
(2) 노드 (Node)
OpenSearch를 실행하는 개별 서버
역할별 노드 종류
- 마스터 노드: 클러스터 상태 관리
- 데이터 노드: 데이터 저장, 검색 요청 처리
- 코디네이터 노드: 클라이언트 요청을 적절한 노드로 분배
(3) 인덱스 (Index)
데이터를 저장하는 기본 단위
RDBMS의 테이블과 비슷하며, 내부적으로 여러 개의 샤드(shard)로 구성됨
(4) 도큐먼트 (Document)
인덱스에 저장되는 개별 데이터 단위
JSON 형식으로 저장됨
{
"id": 1,
"name": "Blue Shirt",
"price": 25000,
"category": "Clothing"
}
(5) 샤드 (Shard)
데이터를 나누어 저장하는 작은 단위
성능을 높이기 위해 여러 개의 샤드로 분할 가능
기본적으로 5개의 샤드로 자동 설정됨
(6) 레플리카 (Replica)
샤드의 복사본으로, 백업 및 부하 분산 역할
노드 장애 시 데이터 손실 방지
기본적으로 각 샤드당 1개의 레플리카 생성됨
OpenSearch 동작 방식
(1) 데이터 입력 (Indexing)
• JSON 데이터를 OpenSearch에 저장하면 자동으로 인덱스에 추가됨
• PUT /index_name/_doc/1 API 사용
(2) 데이터 검색 (Search)
GET /index_name/_search API로 데이터 검색
필터 및 검색 조건 적용 가능
(3) 데이터 집계 (Aggregation)
특정 조건에 맞는 데이터를 그룹화하고 통계 계산
예: 상품별 평균 가격, 특정 오류 발생 횟수 분석
OpenSearch vs RDBMS 비교
OpenSearch | RDBMS | |
데이터 저장 | Index | Table |
데이터 단위 | Document | Row |
데이터 형식 | JSON | 정형 데이터 (SQL) |
검색 방식 | 키워드 검색, 필터, 분석 | SQL 쿼리 |
확장성 | 수평 확장 (샤드 기반) | 수직 확장 (Scale-up) |
OpenSearch 활용 예시
실시간 로그 분석
서버 로그 데이터를 OpenSearch에 저장 후 Kibana/OpenSearch Dashboards에서 시각화
전자상거래 검색 엔진
상품 검색 시 match 쿼리를 활용해 빠른 검색 가능
빅데이터 분석
데이터 집계를 활용하여 사용자 행동 패턴 분석 가능
결론 : OpenSearch는 검색 최적화된 NoSQL 데이터베이스다.
'IT > AWS' 카테고리의 다른 글
AWS OpenSearch 주요 구성 요소 (0) | 2025.03.07 |
---|---|
MySQL RDS와 Amazon Aurora MySQL의 차이점 (0) | 2024.09.23 |
AWS SQL Server 업그레이드 작업 시 고려사항 (0) | 2024.05.09 |
SQL Server 지원 종료 계획 (0) | 2024.05.09 |
AWS Rds for Oracle 에서 Statspack 설정하기 (0) | 2024.03.14 |