728x90
지난 포스트에서는 기존 Warm Tier를 제거하고, MinIO 기반 Searchable Snapshot 구조로 전환하는 방법을 정리했습니다.
이번 글에서는 실제로 이렇게 저장된 Searchable Snapshot을 어떻게 원격에서 검색하는지 실습을 통해 자세히 알아보겠습니다.
🧩 전제 조건: 환경 구성 요약
- OpenSearch 2.x 이상
- repository-s3 플러그인 설치됨
- minio 오브젝트 스토리지 준비됨
- 버킷에 snapshot이 이미 존재함 (logs-snap-202308)
- snapshot은 remote_snapshot 으로 복원됨
지난 포스트에서 설명한 구조를 그대로 이어받습니다.
🔁 1. 스냅샷 복원 (remote_snapshot 설정)
먼저, 원격 스냅샷을 복원하되, 로컬로 가져오지 않고 바로 검색 가능한 형태로 설정합니다.
POST _snapshot/minio-warm/logs-snap-202308/_restore
{
"indices": "logs-*",
"storage_type": "remote_snapshot",
"rename_pattern": "(.+)",
"rename_replacement": "restored-$1",
"index_settings": {
"index.blocks.read_only": false
},
"ignore_index_settings": [
"index.refresh_interval"
]
}
📌 주요 포인트
- storage_type: remote_snapshot: 이게 핵심. 복원하지 않고 MinIO에 있는 데이터를 원격으로 직접 검색
- rename_pattern/rename_replacement: 인덱스 이름 중복 방지
✅ 2. 인덱스가 잘 복원됐는지 확인
GET _cat/indices?v
또는 개별 인덱스의 저장 방식 확인:
GET /restored-logs-*/_settings?pretty
🔎 기대 결과:
"index.store.type": "remote_snapshot"
🔍 3. Searchable Snapshot 인덱스에서 검색하기
A. 일반 텍스트 검색 쿼리
GET /restored-logs-202308/_search
{
"query": {
"match": {
"message": "error"
}
},
"size": 10
}
- match: 일반적인 텍스트 검색
- message: 로그 메시지 필드
B. 시간 범위 검색 (예: 특정 날짜의 오류 로그)
GET /restored-logs-202308/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "OutOfMemoryError"
}
},
{
"range": {
"@timestamp": {
"gte": "2023-08-01T00:00:00",
"lte": "2023-08-01T23:59:59"
}
}
}
]
}
}
}
- @timestamp: 타임스탬프 필드를 기준으로 범위 지정
- "match_phrase": 완전 일치 검색
C. Kibana / OpenSearch Dashboards에서 시각화도 가능
- restored 인덱스를 Index Pattern에 등록
- Discover 탭에서 restored-logs-* 검색
- 시각화 차트도 동일하게 구성 가능
🧠 성능 팁
| 항목 | 팁 |
| 🔄 자주 사용하는 쿼리 | 저장된 search template 또는 alias 활용 |
| ⚠️ 느린 응답 | 검색 전용 노드로 분리, MinIO IOPS 확인 |
| 📊 latency 측정 | _profile 또는 _search?profile=true 옵션 활용 |
| 📁 인덱스 설계 | @timestamp, level, message.keyword 등 필요한 필드에 keyword 매핑 고려 |
📉 searchable snapshot의 검색 성능은?
- 로컬 인덱스보다는 느릴 수 있지만…
- 잘 구성된 MinIO 환경(10Gbps 네트워크, SSD 기반)에서는 수초 내 응답 가능
- 대량 복원 후 분석하는 것보다 즉시 검색 가능한 점이 큰 장점
📌 마무리
Searchable Snapshot을 이용하면, 더 이상 Warm Tier 노드를 유지하지 않아도 과거 로그를 MinIO에서 직접 검색할 수 있습니다.
운영 효율성과 비용 최적화를 동시에 달성할 수 있는 방법이며, 대규모 로그 데이터에 매우 적합한 구조입니다.
728x90
'Data Engineering > opensearch' 카테고리의 다른 글
| Searchable Snapshot 보안 및 규정 준수 전략: 버전관리, 오브젝트 잠금, 암호화까지 (2) | 2025.08.06 |
|---|---|
| Searchable Snapshot 검색 성능 최적화 전략: 빠르고 안정적인 원격 로그 검색을 위하여 (4) | 2025.08.06 |
| Searchable Snapshot을 활용한 OpenSearch 멀티 클러스터 복원 및 DR 전략 (0) | 2025.08.06 |
| OpenSearch Snapshot Lifecycle Policy(SLM)로 Searchable Snapshot 자동화하기 (0) | 2025.08.06 |
| 기존 Hot-Warm 아키텍처에서 Warm Tier를 MinIO 기반 Searchable Snapshot으로 전환하기 (1) | 2025.08.06 |