OpenSearch Index State Management

Dongwoo Kim·어제
0

TIL / WIL

목록 보기
126/126

ISM (Index State Management)

인덱스 상태와 상태별 태스크를 정의하여 인덱스를 자동화 관리할 수 있는 설정

  • ex) hot index를 30일뒤 warm index로, warm index를 60뒤 cold index로 변경하고싶을 때

정책설정

  1. 대시보드 {opensearch_endpoint}/_dashboards 로 접속
  2. 왼쪽 Menu tab에서 Management >Index Management
  3. State management policies 에서 Create policy 클릭 후 정책 생성
  4. Define policy JSON

Policy JSON 예시

// example json
{
    "id": "hot-warm-cold-state-ploicy", // 정책 명
    "seqNo": 124,
    "primaryTerm": 1,
    "policy": {
        "policy_id": "hot-warm-cold-state-ploicy",
        "description": "Demonstrate a hot-warm-cold workflow.",
        "last_updated_time": 1736823816892,
        "schema_version": 21,
        "error_notification": null,
        "default_state": "hot", // 인덱스 생성시 기본 상태
        "states": [
            {
                "name": "hot",  // hot 상태
                "actions": [],
                "transitions": [
                    {
		                    // hot 상태에서 35일 뒤 warm 상태로 변경
                        "state_name": "warm",
                        "conditions": {
                            "min_index_age": "35d"
                        }
                    }
                ]
            },
            {
                "name": "warm", // warm 상태
                "actions": [
                    {
                        "timeout": "24h",
                        "retry": {
                            "count": 5,
                            "backoff": "exponential",
                            "delay": "1h"
                        },
                        // Hot 인덱스에서 Warm 인덱스로 변경
                        // == Data Node에서 Ultrawarm Node로 데이터 이동
                        "warm_migration": {}
                    }
                ],
                "transitions": [
                    {
		                    // warm 상태에서 70일 뒤 cold 상태로 변경
                        "state_name": "cold",
                        "conditions": {
                            "min_index_age": "70d"
                        }
                    }
                ]
            },
            {
                "name": "cold", // cold 상태
                "actions": [
                    {
                        "retry": {
                            "count": 3,
                            "backoff": "exponential",
                            "delay": "1m"
                        },
                        // Warm 인덱스에서 Cold 인덱스로 변경
                        // == Ultrawarm Node에서 Cold Storage로 데이터 이동
                        "cold_migration": {
                            "start_time": null,
                            "end_time": null,
                            "timestamp_field": "@timestamp",
                            "ignore": "none"
                        }
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
		            // 해당 패턴의 인덱스가 생성될 때 자동으로 정책 적용
                "index_patterns": [
                    "alpha-event-data-*"
                ],
                "priority": 100,
                "last_updated_time": 1736823816889
            }
        ]
    }
}

Hot, Warm, Cold 구분

OpenSearch에서 구분하는 index 종류Hot indexWarm indexCold index
물리적으로 데이터가 저장된 곳Data NodeUtarwarm NodeCold Storage
ISM에서 임의로 정의한 인덱스 상태 명 (위 예시기준)hotwarmcold
작업모드쓰기, 읽기읽기읽기

기존 Index 정책 연결

정책 생성 후 새로 생성되는 인덱스는 자동으로 정책이 적용되지만 이미 생성된 인덱스는 따로 연결해줘야한다.

  1. Indexes > Hot indexes에서 적용할 인덱스 선택 후 Apply policy 클릭 후 앞서 생성한 정책 적용
  2. Indexes > Policy managed indexes 에서 정책 적용된 인덱스 목록 확인

Reference

profile
kimphysicsman

0개의 댓글