OpenSearch 인덱스 자동 삭제 정책으로 효율적으로 인덱스 관리 하는 방법

2분 분량
콘텐츠 수준: 중급
0

인덱스를 자동으로 삭제하는 정책을 생성하여 오래된 인덱스를 자동으로 제거하여 스토리지 공간을 절약하고, 검색 성능을 향상시킬 수 있습니다.

OpenSearch는 대용량의 데이터를 저장하고 검색하는 분산 시스템입니다. 시간이 지날수록 데이터가 계속 누적되면서 스토리지 공간이 부족해지고 검색 성능이 저하될 수 있습니다. 이를 방지하기 위해 오래된 인덱스를 주기적으로 삭제하는 것이 필요합니다.

OpenSearch Service의 인덱스 상태 관리 (ISM) 를 사용하면 일상적인 작업을 자동화하는 사용자 지정 관리 정책을 정의하고 이를 인덱스 및 인덱스 패턴에 적용할 수 있습니다. 인덱스 작업을 실행하기 위해 더 이상 외부 프로세스를 설정하고 관리할 필요가 없습니다. 따라서 해당 기사에서는 OpenSearch에서는 인덱스 상태 관리 (ISM) 기능을 제공하여 인덱스의 자동 삭제 정책을 설정할 수 있는 방법에 대해서 안내합니다. sample 접두사를 가진 인덱스를 생성한뒤 1시간 뒤에 인덱스를 삭제하는 정책을 예시로 설명합니다.

테스트에 사용할 인덱스 생성

  • sample를 접두사로 가진 테스트 인덱스를 생성합니다.
PUT /sample_index

여기에 이미지 설명 입력

인덱스를 자동으로 삭제하는 템플릿 등록

  • min_index_age : 지정한 시간 이후 인덱스가 삭제 상태로 전환됩니다. (사용 사례에 따라 1h[1시간] 또는 3d[3일]로 설정할 수 있습니다)
    • 지원되는 단위는 d(일), h(시간), m(분), s(초), ms(밀리초), 그리고 micros(마이크로초)입니다.
    • 아래의 샘플 코드에서는 1시간 이후에 인덱스가 삭제되도록 min_index_age를 설정하였습니다.
  • index_patterns : ISM 정책은 언급된 인덱스 패턴을 따르는 모든 인덱스에 적용됩니다.
    • sample 접두사를 가진 인덱스는 만들어진 ISM 정책에 영향을 받아 1시간 이후에 삭제됩니다.
  • 위에서 언급한 두개의 파라미터를 자신의 환경에 맞추어 설정합니다.
PUT _plugins/_ism/policies/delete_ism_policy
{
    "policy": {
        "policy_id": "delete_ism_policy",
        "description": "A simple default policy that deletes old unused indices",
        "last_updated_time": 1658834661281,
        "schema_version": 13,
        "error_notification": null,
        "default_state": "example_hot_state",
        "states": [
            {
                "name": "example_hot_state",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": "1h"
                        }
                    }
                ]
            },
            {
                "name": "delete",
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [ 
                    "sample*"
                ],
                "priority": 100,
                "last_updated_time": 1658834436349
            }
        ]
    }
}

인덱스 정책 설정 확인

  • 인덱스 정책 확인 : Management> Index Management > State management policies 에서 확인이 가능합니다.
  • ISM 정책이 설정되어있다면 아래와 같이 정책을 확인할 수 있습니다. 여기에 이미지 설명 입력

인덱스 삭제 확인

  • 1시간 후에 아래의 명령어를 통해 인덱스를 확인해본 결과, sample 접두사를 가진 인덱스가 삭제된것을 확인할 수 있습니다.
GET _cat/indices

여기에 이미지 설명 입력

참고 자료

[+] Amazon OpenSearch Service의 인덱스 상태 관리

https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ism.html

[+] Policies - Example policy

https://opensearch.org/docs/latest/im-plugin/ism/policies/#example-policy

profile pictureAWS
지원 엔지니어
게시됨 2달 전1050회 조회