본문 바로가기

데이터베이스/ELK

[ElasticSearch] 인덱스 수명 주기 관리 (Hot, Warm, Cold)

 

1. ILM 란?

ILM란 인덱스 수명 주기 관리 (Index Lifecycle Management)라고 불린다.
인덱스 수명 주기 관리(IML)은 ElasticSearch 6.7버전에서 출시되었으며, 인덱스 관리를 효율적으로 관리할 수 있도록 설계되었다.

인덱스 수명주기 관리 (ILM) API는 시간이 지남에 따라 인덱스를 관리하는 방법을 자동화 할 수 있다. 정해진 일정에 따라 인덱스에 대한 관리 작업을 수행하는 대신 샤드 크기 및 성능 요구 사항과 같은 다른 요소를 기반으로 작업을 수행할 수 있다.

인덱스를 생성하는 데 사용된 인덱스 템플릿에 수명 주기 정책을 연결하여 인덱스가 처리되는 방식을 제어한다.

 

 

2. Hot-Warm-Cold

Hot-warm-cold 아키텍처는 로깅 또는 메트릭과 같은 시계열 데이터에 일반적으로 사용된다. hot-warm-cold 아키텍처를 사용하여 비용 절감(최적화)을 쉽게 구현 할수 있다.

  • Hot
인덱스가 활발하게 업데이트되고 쿼리 수행

모든 새 인덱스를 호스팅하고 모든 읽기 및 쓰기를 가져온다. SSD와 높은 CPU를 사용하는 것이 좋다.

 

  • Warm
인덱스가 더 이상 업데이트 되지 않지만 여전히 쿼리 수행

예를 들어 1주 된 덜 최근 인덱스를 호스팅하고 모든 읽기를 기져온다. 성능이 낮은 하드웨어를 여기에서 사용할 수 있다.

 

  • Cold
인덱스가 더 이상 업데이트되지 않고 거의 쿼리 미수행. 정보는 여전히 검색 가능해야 하지만 이러한 쿼리가 더 느리더라도 괜찮음.

예를 들어 3주 된 오래된 인덱스를 호스팅하고 모든 읽기 작업도 받는다. 저렴한 구성을 사용하면 여기에서 사용할 수 있다.

 

 

3. 수명 주기 정책

수명 주기 정책은 여러 단계를 통해 인덱스가 전환되는 방식과 단계별 수행되는 작업을 제어한다.

  • 새 인덱스로 롤오버하려는 최대 크기 또는 기간 설정 작업
  • 인덱스가 더 이상 업데이트 되지 않고 기본 샤드의 수를 줄일 수 있는 작업
  • 삭제 표시된 문서를 영구적으로 병합하기 위해 삭제 작업
  • 인덱스를 성능이 낮은 하드웨어로 이동 작업
  • 복제본 수를 줄일 수 있는 작업

 

(1) Elasticsearch로 지표 데이터를 인덱싱하는 경우 다음과 같은 정책을 정의할 수 있다.

  • 인덱스가 50GB에 도달하면 새 인덱스로 롤오버한다.
  • 이전 인덱스를 Warm 단계로 이동하고 읽기 전용으로 표시한 다음 단일 샤드로 축소한다.
  • 7일 후 인덱스를 Cold 단계로 이동하고 더 저렴한 하드웨어로 이동한다.
  • 필요한 30일 보존 기간에 도달하면 인덱스를 삭제한다.

 

(2) ILM 사용 이점

  • 성능이 뛰어난 노드(핫 노드)에만 샤드를 분산하여 쓰기 최적화
  • 읽기 전용 노드(warm 또는 cold 노드, 핫 노드에서도 소수)에 샤드를 분산하여 읽기를 최적화
  • 인덱스를 적절한 하드웨어로 이동하여 비용 최적화 (Hot : 강력한 하드웨어, Warm 및 Cold 시 덜 강력함)
  • 작은 샤드 크기를 유지하고 I/O, 네트워크 대역폭을 줄여 전반적인 클러스터 상태를 최적화하고 클러스터 작업을 더 빠르게 만든다

 

 

 

 

 

 

[참고]

https://velog.io/@jeb1225/%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1%EC%84%9C%EC%B9%98-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%88%98%EB%AA%85-%EC%A3%BC%EA%B8%B0-%EA%B4%80%EB%A6%AC