Amazon OpenSearch Service에서 인덱스 상태 관리(ISM)를 사용하여 부족한 스토리지 공간을 관리하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 9월 16일

Amazon OpenSearch Service 클러스터의 스토리지 공간이 부족합니다. OpenSearch Service에서 ISM(인덱스 상태 관리)을 사용하여 스토리지 공간 문제를 관리하려면 어떻게 해야 합니까?

간략한 설명

인덱스 상태 관리(ISM)를 사용하면 일상적인 작업을 자동화하여 OpenSearch Service의 인덱스 및 인덱스 패턴에 적용할 수 있습니다. ISM을 사용하면 디스크 공간 부족과 같은 문제를 유지 관리하는 데 도움이 되는 사용자 지정 관리 정책을 정의할 수 있습니다. 예를 들어 롤오버 작업과 ISM 정책을 사용하여 인덱스 크기와 같은 조건에 따라 이전 인덱스의 삭제를 자동화할 수 있습니다. 롤오버 작업은 기존 인덱스가 정의된 조건을 충족하는 경우 대상을 새 인덱스로 롤오버합니다.

롤오버와 같은 작업을 사용하여 인덱스 패턴에 대한 ISM 정책을 생성하려면 다음 단계를 수행합니다.

1.    롤오버 인덱스를 설정합니다.

2.    ISM 정책을 생성합니다.

3.    정책을 인덱스에 연결합니다.

4.    템플릿을 추가합니다.

정책을 인덱스에 연결하면 인덱스가 초기화하기 시작한 다음 롤오버 작업이 완료될 때까지 다른 상태로 전환됩니다. 롤오버 작업에 대한 자세한 내용은 Elasticsearch를 위한 OpenDistro 웹 사이트의 롤오버를 참조하세요.

해결 방법

롤오버 인덱스 설정

인덱스 형식이 인덱스 패턴과 일치하는 인덱스 및 별칭을 만듭니다.

^.*-\d+$.

중요: 롤오버 별칭을 올바르게 구성해야 합니다. 그렇지 않으면 오류 메시지를 수신합니다.

다음 예에서는 “test-index-000001”이 만들어지고 여러 문서로 채워집니다. 이 예제에서는 롤오버 인덱스를 사용하기 때문에 인덱스 형식이 패턴과 일치해야 합니다.

PUT test-index-000001/_doc/1
{
    "user" : "testuser",
    "post_date" : "2020-05-08T14:12:12",
    "message" : "ISM testing"
}

롤오버 인덱스에는 최신 인덱스를 가리키는 별칭이 필요합니다. 즉, 다음 쿼리를 사용하여 별칭(“test-index”)을 작성해야 합니다.

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "test-index-000001", "alias" : "test-index" } }
    ]
}

ISM 정책 생성

OpenSearch 대시보드에서 인덱스 관리(Index Management) 탭을 선택하고 롤오버 작업에 대한 ISM 정책을 만듭니다.

예를 들면 다음과 같습니다.

{
    "policy": {
        "policy_id": "Roll_over_policy",
        "description": "A test policy. DO NOT USE FOR PRODUCTION!",
        "schema_version": 1,
        "error_notification": null,
        "default_state": "hot",
        "states": [
            {
                "name": "hot",
                "actions": [
                    {
                        "rollover": {
                            "min_size": "10mb"
                        }
                    }
                ],
                "transitions": [
                    {
                        "state_name": "warm"
                    }
                ]
            },
            {
                "name": "warm",
                "actions": [
                    {
                        "replica_count": {
                            "number_of_replicas": 2
                        }
                    }
                ],
                "transitions": []
            }
        ]
    }
}

이 ISM 정책에는 ‘핫’과 ‘웜’이라는 두 가지 상태가 정의되어 있습니다. 기본적으로 인덱스는 ‘핫’ 상태입니다. 인덱스는 크기가 10MB에 도달하고 새 롤오버 인덱스가 생성되면 즉시 ‘웜’ 상태로 전환됩니다. ‘웜’ 상태에서는 복제본 수를 2로 변경하거나 force_merge 작업을 수행하는 등 인덱스에 대해 다양한 작업을 수행할 수 있습니다.

인덱스에 정책 연결

ISM 정책을 인덱스에 연결하려면 다음 단계를 수행합니다.

1.    OpenSearch Service 콘솔에서 OpenSearch 대시보드를 엽니다.

2.    [인덱스 관리(Index Management)] 탭을 선택합니다.

3.    ISM 정책을 연결할 인덱스를 선택합니다(예: “test-index-000001").

4.    [정책 적용(Apply Policy)]을 선택합니다.

5.    (선택 사항) 정책에 별칭이 필요한 작업이 지정된 경우 별칭을 제공한 다음 [적용(Apply)]을 선택합니다. 인덱스가 관리되는 인덱스(Managed Indices) 목록 아래에 나타납니다.

템플릿 추가

ISM 정책의 결과로 생성된 “test-indexx-000002”와 같은 특정 인덱스에 정책을 연결합니다. 이 첨부 파일을 사용하면 필요한 조건(예: 인덱스 크기)이 충족될 때 인덱스도 롤오버됩니다.

다음과 같은 인덱스 템플릿을 사용할 수 있습니다.

PUT _template/template_1
{
  "index_patterns": [
    "test-index*"
  ],
  "settings": {
    "index": {
      "opendistro": {
        "index_state_management": {
          "policy_id": "Roll_over_policy",
          "rollover_alias": "test-index"
        }
      }
    }
  }
}

이 예에서 JSON 정책 ID는 “Roll_over_policy”입니다. 이 JSON 템플릿은 "test-indexx-000002" 인덱스가 생성될 때 롤오버 정책이 연결되도록 합니다.

GET test-index-000002/_settings
{
  "test-index-000002" : {
    "settings" : {
      "index" : {
        "opendistro" : {
          "index_state_management" : {
            "policy_id" : "Roll_over_policy",
            "rollover_alias" : "test-index"
          }
        },
        "number_of_shards" : "1",
        "provided_name" : "test-index-000002",
        "creation_date" : "1589031424388",
        "number_of_replicas" : "2",
        "uuid" : "DUHeUdTnSveeYsH9aIkt-Q",
        "version" : {
          "created" : "7010199"
        }
      }
    }
  }
}

참고: 이 인덱스는 OpenSearch 대시보드의 [인덱스 관리(Index Management)] 탭에 있는 [관리형 인덱스(Managed Indices)] 섹션 아래에도 채워집니다.

ISM 정책 상태

ISM 정책이 인덱스에 연결되면 인덱스는 “초기화 중” 상태가 됩니다. “초기화 중” 상태에서 인덱스는 정책에 정의된 “기본값” 상태로 이동합니다. 이 ‘초기화 중’ 작업 및 모든 후속 작업에는 30~48분이 걸릴 수 있습니다. ISM은 이 시간을 사용하여 정책 작업을 수행한 다음 조건을 확인하고 인덱스를 다른 상태로 전환합니다. 모든 인덱스에서 동시에 발생하는 활동이 급증하지 않도록 0~60% 의 랜덤 지터도 추가됩니다.

참고: 롤오버 작업의 경우 인덱스가 롤오버된 후 ‘웜’ 상태로 전환되고 복제본 수가 갱신되면 인덱스가 “완료”됩니다.

ISM 정책을 사용 중이고 인덱스가 제대로 마이그레이션되지 않는 경우 ISM의 상태를 확인하세요.

특정 인덱스에 대한 마이그레이션 상태를 확인하려면 다음 구문을 사용합니다.

GET _ultrawarm/migration/<put_index_name_here>/_status

모든 인덱스의 요약 마이그레이션을 가져오려면 다음 구문을 사용합니다.

GET _ultrawarm/migration/_status?

Amazon OpenSearch Service는 Amazon Elasticsearch Service의 후속 서비스입니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?