ILM (Index Lifecycle Management)

원본 보기

Elasticsearch의 ILM (Index Lifecycle Management)

인덱스 수명 주기 관리(ILM)는 로그와 메트릭처럼 시간 기반 인덱스의 관리를 자동화합니다. ILM 정책을 사용하면 인덱스 롤오버, 보존, 삭제를 체계화하여 데이터의 성능, 안정성, 스토리지 비용을 최적화할 수 있습니다.

예를 들어 ILM으로 다음과 같은 작업을 할 수 있습니다.

  • 인덱스가 특정 크기나 문서 수에 도달하면 새 인덱스를 생성
  • 매일, 매주, 매월 새 인덱스를 만들고 이전 인덱스는 아카이브
  • 오래된 인덱스를 삭제해 데이터 보존 기준을 준수
중요

ILM을 사용하려면 클러스터의 모든 노드가 동일한 버전을 실행해야 합니다. 버전이 혼재된 클러스터에서도 정책을 만들고 적용하는 것 자체는 가능할 수 있지만, 의도대로 동작한다는 보장은 없습니다. 클러스터의 모든 노드에서 지원되지 않는 작업이 포함된 정책을 사용하려고 하면 오류가 발생합니다.

사용 사례에 적합한지 확인할 수 있도록 ILM의 제공 범위를 살펴보세요.

  • ILM으로 인덱스와 데이터 스트림을 관리할 수 있습니다.

    • 인덱스: 수명 주기 정책을 정의하고 이를 인덱스 또는 인덱스 별칭에 적용하여 특정 인덱스나 인덱스 집합을 ILM으로 관리합니다. 각 인덱스는 해당 정책에 따라 평가되며 사전 정의된 조건에 따라 여러 단계(hot, warm, cold, frozen, delete)를 거칩니다. 이 방식은 인덱스별로 더 세밀하게 제어할 수 있지만, 권장 방식인 데이터 스트림을 사용할 때보다 상당히 많은 수고가 듭니다.

    • 데이터 스트림: 데이터 스트림은 추가 전용 시계열 데이터를 담은 인덱스 집합 위의 추상화 계층 역할을 합니다. 데이터 스트림을 하나의 명명된 리소스로 삼아 ILM을 구성하면 롤오버를 비롯해 구성된 작업들이 데이터 스트림의 백업 인덱스에 자동으로 수행됩니다.

  • ILM은 버전이 지정된 Elastic Stack의 모든 배포 유형에서 사용할 수 있지만 Elasticsearch Serverless에서는 사용할 수 없습니다. Serverless 환경에서는 데이터 수명 주기 옵션으로 데이터 스트림 수명 주기를 사용할 수 있습니다.

    Serverless 환경에서의 더 간단한 수명 주기 관리

    ILM을 사용하면 성능 요구 사항과 보존 요건에 맞춰 인덱스를 데이터 티어 간에 자동으로 이동시킬 수 있습니다. 이를 통해 하드웨어 비용과 성능의 균형을 맞출 수 있습니다. Serverless에서는 클러스터 성능이 자동으로 최적화되기 때문에 ILM을 사용할 수 없습니다. 대신 데이터 관리 옵션으로 데이터 스트림 수명 주기를 사용할 수 있습니다.

    데이터 스트림 수명 주기는 가장 일반적인 수명 주기 관리 요구에 최적화된 더 간단한 수명 주기 관리 도구입니다. 데이터 티어 같은 하드웨어 중심 개념 없이도 데이터의 보존 기간을 구성하고 데이터 저장 방식을 최적화할 수 있습니다. ILM과 데이터 스트림 수명 주기의 자세한 비교는 데이터 수명 주기를 참고하세요.

ILM 정책은 다음과 같은 작업을 트리거할 수 있습니다.

  • 롤오버: 현재 쓰기 인덱스가 특정 크기, 문서 수, 기간에 도달하면 새 쓰기 인덱스를 생성합니다.
  • 축소: 인덱스의 주 샤드 수를 줄입니다.
  • 강제 병합: 강제 병합을 실행해 인덱스 샤드의 세그먼트 수를 줄입니다.
  • 삭제: 인덱스를 모든 데이터와 메타데이터를 포함해 영구적으로 제거합니다.
  • 그 외 더 보기

각 작업에는 다음과 같은 인덱스 동작과 특성을 지정할 수 있는 옵션이 있습니다.

  • 새 인덱스로 롤오버할 기준이 되는 최대 샤드 크기, 문서 수, 기간.
  • 인덱스가 더 이상 업데이트되지 않아 주 샤드 수를 줄일 수 있는 시점.
  • 삭제 표시된 문서를 영구적으로 제거하기 위해 병합을 강제할 시점.
  • 인덱스를 성능이 낮은 하드웨어로 옮길 수 있는 시점.
  • 가용성이 그만큼 중요하지 않아 복제본 수를 줄일 수 있는 시점.
  • 인덱스를 안전하게 삭제할 수 있는 시점.

예를 들어 ATM 장비군의 메트릭 데이터를 Elasticsearch에 색인하고 있다면 다음과 같은 정책을 정의할 수 있습니다.

  1. 인덱스의 주 샤드 총 크기가 50GB에 도달하면 새 인덱스로 롤오버합니다.
  2. 이전 인덱스를 warm 단계로 옮기고 읽기 전용으로 표시한 뒤 단일 샤드로 축소합니다.
  3. 7일이 지나면 인덱스를 cold 단계로 옮기고 더 저렴한 하드웨어로 이동합니다.
  4. 요구되는 30일 보존 기간에 도달하면 인덱스를 삭제합니다.

사용 가능한 모든 작업은 인덱스 수명 주기 작업에서 확인하세요.

인덱스 수명 주기 정책은 Kibana의 Index Management UI나 ILM API로 생성하고 관리할 수 있습니다. 인덱스 수명 주기 정책 생성과 관리에 대한 자세한 내용은 다음을 참고하세요.

기본 인덱스 수명 주기 관리 정책은 Elastic 통합을 설치하거나 Elastic Agent, Beats, Logstash Elasticsearch 출력 플러그인으로 Elastic Stack에 데이터를 보낼 때 자동으로 생성됩니다.

index lifecycle policies

인덱스를 자동으로 백업하고 스냅샷을 관리하려면 스냅샷 수명 주기 정책을 사용하세요.

유지 보수를 수행하거나 클러스터를 변경하거나 문제를 해결하는 동안 ILM 서비스를 일시적으로 중지하려면 인덱스 수명 주기 관리 시작 및 중지를 참고하세요.

ILM 실행 중 문제가 발생하면 자세한 문제 해결 안내를 위해 인덱스 수명 주기 관리 오류 해결하기를 참고하세요.

현재 인덱스 큐레이션을 사용 중인 기존 hot-warm 배포라면 ILM으로 마이그레이션할 때 각 인덱스의 수명 주기를 더 세밀하게 제어할 수 있습니다. 자세한 내용은 다음을 참고하세요.

이미 관리되는 수명 주기가 없는 기존 인덱스 집합을 관리하도록 ILM을 설정할 수도 있습니다. 이때 적용하는 ILM 정책에는 롤오버 작업이 포함되면 안 됩니다. 롤오버 작업으로 새 인덱스가 생성될 때 정책이 이어지지 않기 때문입니다. 자세한 내용은 기존 Elasticsearch 인덱스에 인덱스 수명 주기 정책 적용하기를 참고하세요.