Elasticsearch - 인덱스 수명 주기 관리

Hyunjun Jang·2021년 11월 13일
0

ILM 란?(인덱스 수명 주기 관리 : Index Lifecycle Management)

인덱스 수명 주기 관리(ILM)는 Elasticsearch 6.6(베타)에서 처음 소개되었으며 6.7에서 공식 출시된 기능이다. ILM은 Elasticsearch의 일부로, 인덱스 관리를 돕도록 설계 되었다.

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

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

Hot-Warm-Cold

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

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

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

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

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

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

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

  • Delete — 색인이 더 이상 필요하지 않으며 안전하게 삭제.

수명 주기 정책

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

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

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

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

ILM 사용 이점

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

Reference

https://www.elastic.co/kr/blog/implementing-hot-warm-cold-in-elasticsearch-with-index-lifecycle-management
https://medium.com/bestcloudforme/data-aging-with-elasticsearch-hot-warm-cold-infrastructure-6e5eef4c9e65
https://ptran32.github.io/2020-08-08-hot-warm-cold-elasticsearch/

profile
Let's grow together😊

0개의 댓글