Data Engineering/opensearch

기존 Hot-Warm 아키텍처에서 Warm Tier를 MinIO 기반 Searchable Snapshot으로 전환하기

ygtoken 2025. 8. 6. 22:19
728x90

 

운영 로그 데이터가 점점 늘어나면서, 과거에는 흔히 사용하던 Hot-Warm-Cold 아키텍처도 진화할 필요가 생겼습니다. 최근에는 Warm Tier 노드 없이도 장기 데이터를 검색 가능하게 해주는 “Searchable Snapshot” 기능이 등장하며, MinIO와 OpenSearch를 함께 사용하는 사례가 늘고 있습니다.

 

이번 글에서는 기존 Warm Tier를 제거하고, MinIO 오브젝트 스토리지를 기반으로 Searchable Snapshot 구조를 도입하는 방법을 총체적으로 정리합니다.

 


 

📌 왜 Warm Tier를 Searchable Snapshot으로 대체해야 할까?

 

 

기존 구조

Hot Tier (NVMe SSD) → Warm Tier (HDD) → Cold Tier

 

  • Warm Tier는 상대적으로 저렴한 디스크(HDD)에 데이터를 저장하고, 실시간 검색은 가능하지만 성능은 낮습니다.
  • 하지만 Warm 노드도 유지보수/인프라 비용이 필요하죠.

 

 

전환 구조 (권장)

Hot Tier (NVMe SSD) → Searchable Snapshot (MinIO)

 

  • Warm 노드 없이도 원격에서 데이터를 바로 검색 가능
  • 비용 절감, 운영 단순화, DR(Disaster Recovery) 유연성 확보

 


 

🔧 핵심 기술 구성요소

구성요소 설명
OpenSearch Apache Lucene 기반 검색/분석 엔진
Searchable Snapshot 스냅샷을 복원하지 않고 원격에서 검색 가능한 기능
MinIO 고성능 오브젝트 스토리지 (S3 호환)
ILM (Index Lifecycle Management) 자동 스냅샷 생성 및 전환 정책 관리

 


 

🧭 전환 절차 요약

 

 

1. MinIO 오브젝트 스토리지 구성

docker run -d \
  -p 9000:9000 -p 9001:9001 \
  -v /mnt/disk1:/mnt/disk1 \
  -v /mnt/disk2:/mnt/disk2 \
  quay.io/minio/minio server /mnt/disk{1...2} --console-address ":9001"

 

  • MinIO 콘솔 접속: http://localhost:9001
  • 버킷 생성: warm-snapshot-bucket

 


 

2. OpenSearch에서 MinIO 연결 설정

 

  1. repository-s3 플러그인 설치
  2. opensearch-keystore에 자격정보 등록
bin/opensearch-keystore add s3.client.default.access_key
bin/opensearch-keystore add s3.client.default.secret_key
bin/opensearch-keystore add s3.client.default.endpoint
bin/opensearch-keystore add s3.client.default.protocol

 


 

3. 스냅샷 저장소 등록

PUT _snapshot/minio-warm
{
  "type": "s3",
  "settings": {
    "bucket": "warm-snapshot-bucket",
    "base_path": "snapshots/",
    "readonly": false
  }
}

 


 

4. ILM 정책 수정 (warm → searchable snapshot)

"warm": {
  "actions": {
    "searchable_snapshot": {
      "snapshot_repository": "minio-warm"
    }
  }
}

 


 

5. 수동 스냅샷 및 복원 테스트

 

 

A. 스냅샷 생성

PUT _snapshot/minio-warm/logs-snap-202308
{
  "indices": "logs-*"
}

 

B. Searchable Snapshot 복원

POST _snapshot/minio-warm/logs-snap-202308/_restore
{
  "storage_type": "remote_snapshot",
  "indices": "logs-*",
  "rename_pattern": "(.+)",
  "rename_replacement": "restored-$1"
}

 

C. 원격 인덱스 확인

GET /restored-logs-*/_settings
"index.store.type": "remote_snapshot"

 


 

💡 기대 효과

항목 효과
💰 비용 절감 Warm Tier 제거 → 디스크 및 노드 비용 절감
🧩 운영 간소화 스냅샷만 관리 → 인프라 복잡도 감소
🔍 데이터 검색 유지 검색 가능한 상태로 원격 스냅샷 유지
🛡 복구 유연성 DR 시 다른 클러스터에서도 복원 가능

 


 

⚠️ 주의할 점

  • remote snapshot은 네트워크 속도에 따라 latency 발생 가능
  • MinIO 성능(디스크, 네트워크) 중요
  • 검색은 search 역할 전용 노드로 분리 권장

 


 

🧠 마무리

 

OpenSearch와 MinIO를 조합한 Searchable Snapshot 구조는 최근 로그 아키텍처의 흐름을 잘 반영합니다.

**“Hot은 빠르게, 나머지는 저렴하게, 그러나 검색은 유지한다”**는 전략은 운영 효율성과 비용의 균형을 맞추는 데 매우 효과적입니다.

 

기존 Warm Tier를 제거하고자 고민 중이라면, 지금이 바로 전환을 고려할 시점입니다.

 


 

📎 참고 자료

 

 

 

728x90