ISM을 사용하여 Amazon OpenSearch Service의 부족한 스토리지 공간을 관리하려면 어떻게 해야 하나요?

5분 분량
0

내 Amazon OpenSearch Service 클러스터의 스토리지 공간이 부족합니다.

간략한 설명

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

롤오버와 같은 작업을 활용하여 인덱스 패턴에 대한 ISM 정책을 만들려면 다음 단계를 수행하세요.

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

2.    ISM 정책을 만듭니다.

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

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

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

해결 방법

롤오버 인덱스 설정

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

^.*-\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 정책에 포함된 경우에는 롤오버 별칭을 포함해야 합니다. 자세한 내용은 ISM 정책의 롤오버 인덱스 작업이 Amazon OpenSearch Service에서 계속 실패하는 이유는 무엇인가요?를 참조하세요.

ISM 정책 생성 만들기

OpenSearch 대시보드에서 인덱스 관리 탭을 선택한 후 롤오버 작업을 위한 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 작업을 수행하는 등 인덱스에 대한 다양한 작업을 수행할 수 있습니다.

며칠 후 롤오버하여 삭제

{
  "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": "delete",
            "conditions": {
              "min_index_age": "30d"
            }
          }
        ]
      },
      {
        "name": "delete",
        "actions": [
          {
            "delete": {}
          }
        ],
        "transitions": []
      }
    ]
  }
}

이 ISM 정책에는 “핫”과 “삭제”라는 두 가지 상태가 정의되어 있습니다. 기본적으로 인덱스는 “핫” 상태입니다. 인덱스가 10MB에 도달하면 새 롤오버 인덱스가 만들어집니다. 그런 다음 30일이 지나면 인덱스가 “삭제” 상태로 전환되고 삭제됩니다.

인덱스에 정책 연결

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

1.    OpenSearch Service 콘솔에서 OpenSearch 대시보드를 엽니다. OpenSearch 서비스 콘솔의 도메인 요약에서 OpenSearch 대시보드의 링크를 찾을 수 있습니다.

2.    인덱스 관리 탭을 선택합니다.

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

4.    정책 적용을 선택합니다.

5.    (선택 사항) 정책에서 별칭이 필요한 작업을 지정하는 경우 별칭을 입력한 후 적용을 선택합니다. 그러면 정책 관리 인덱스목록 아래에 인덱스가 표시됩니다.

기존 인덱스의 정책 업데이트

참고: 기존 정책에서 수행한 업데이트는 기존 인덱스에 자동으로 적용되지 않으므로 동일한 정책을 인덱스에 다시 적용해야 합니다.

기존 인덱스에 ISM 정책을 다시 적용하려면 다음 단계를 수행하세요.

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

2.    인덱스 관리 탭을 선택합니다.

3.    정책 관리 인덱스 섹션에서 정책 변경을 선택합니다.

4.    변경 사항을 적용할 인덱스(예: "test-index-000001")를 선택합니다.

5.    인덱스의 현재 상태를 선택합니다.

6.    새 정책 선택 섹션에서 정책 이름 업데이트를 선택합니다.

7.    (선택 사항) 정책이 업데이트된 후 인덱스를 다른 상태로 전환하려면 정책이 적용된 후 인덱스를 다음 상태로 전환을 선택합니다. 그런 다음, 드롭다운 목록에서 상태를 선택합니다.

템플릿 추가

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

다음과 같은 ISM 템플릿을 만들어 사용할 수 있습니다.

PUT _plugins/_ism/policies/test_policy
{
  "policy": {
    "description": "A test policy. DO NOT USE FOR PRODUCTION!",
    "last_updated_time": 1642027350875,
    "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_template": {
      "index_patterns": [
        "test*"
      ],
      "priority": 100
    }
  }
}

이 예에서 설명 인덱스 API는 생성한 "test_policy" 템플릿이 새로 생성된 인덱스에 연결되어 있는지 확인합니다.

GET _plugins/_ism/explain/test-index-000002
{
  "test-index-000002": {
    "index.plugins.index_state_management.policy_id": "test_policy",
    "index.opendistro.index_state_management.policy_id": "test_policy",
    "index": "test-index-000002",
    "index_uuid": "CZrQ-RzRS8SmiWIuyqFmVg",
    "policy_id": "test_policy",
    "enabled": true
  },
  "total_managed_indices": 1
}

참고: 이 인덱스는 OpenSearch 대시보드 인덱스 관리 탭의 관리 인덱스 섹션에도 채워집니다.

ISM 정책 상태

ISM 정책이 인덱스에 연결되면 인덱스는 “초기화 중” 상태가 됩니다. “초기화 중” 상태의 인덱스는 정책에 정의된 “기본” 상태로 이동합니다. 이 “초기화” 작업과 모든 후속 작업이 완료되는 데 3048분이 소요될 수 있습니다. ISM은 이 시간을 사용하여 정책 작업을 수행한 후 조건을 검사하고 인덱스를 다른 상태로 전환합니다. 모든 인덱스에서 동시에 활동이 급증하지 않도록 060%의 임의 지터도 추가됩니다.

**참고:**롤오버 작업의 경우 인덱스가 롤오버되어 "웜" 상태로 전환되고 복제본 수가 업데이트되면 인덱스가 "완료"됩니다.

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

특정 인덱스의 마이그레이션 상태를 확인하려면 다음 구문을 사용하세요.

GET _ultrawarm/migration/<put_index_name_here>/_status

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

GET _ultrawarm/migration/_status?

관련 정보

정책 예시

AWS 공식
AWS 공식업데이트됨 일 년 전