ISM을 사용하여 Amazon OpenSearch Service의 부족한 스토리지 공간을 관리하려면 어떻게 해야 합니까?
Amazon OpenSearch Service 클러스터의 스토리지 공간이 부족합니다. 인덱스 상태 관리(ISM)를 사용하여 스토리지 공간을 관리하고 싶습니다.
간략한 설명
스토리지 공간 부족 문제를 해결하려면 ISM을 사용하여 사용자 지정 관리 정책을 정의하고 이전 인덱스를 자동으로 삭제하는 등의 롤오버 작업을 수행하십시오. 롤오버 작업은 기존 인덱스가 지정된 조건을 충족하면 대상을 새 인덱스로 롤오버합니다. ISM은 각 상태에서 인덱스를 만든 날짜 및 시간을 평가하여 관련 작업을 시작할 시기를 결정합니다.
인덱스에 정책을 연결하면 인덱스가 초기화되기 시작하며, 롤오버 작업이 완료될 때까지 다른 상태로 전환됩니다. 롤오버 작업에 대한 자세한 내용은 Open Distro 웹 사이트에서 롤오버를 참조하십시오.
해결 방법
롤오버 인덱스 설정
OpenSearch 대시보드에서 인덱스 패턴을 만들려면 다음 단계를 완료하십시오.
- OpenSearch Service 콘솔을 엽니다.
- OpenSearch 대시보드에 액세스합니다.
참고: OpenSearch 서비스 콘솔의 도메인 요약에서 OpenSearch 대시보드로 연결되는 링크를 찾을 수 있습니다. - 관리를 선택합니다.
- 인덱스 패턴을 선택한 다음, 인덱스 패턴 만들기를 선택합니다.
- ^.*-\d+$ 인덱스 패턴과 일치하는 인덱스 형식으로 인덱스와 별칭을 만듭니다.
중요: 오류를 방지하려면 롤오버 별칭을 올바르게 구성해야 합니다.
자세한 내용은 OpenSearch 웹 사이트의 인덱스 패턴을 참조하십시오.
ISM 정책에 롤오버 작업을 포함할 때는 롤오버 별칭도 포함해야 합니다. 자세한 내용은 ISM 정책의 롤오버 인덱스 작업이 OpenSearch Service에서 계속 실패하는 이유는 무엇입니까?를 참조하십시오.
다음 예제에서는 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 대시보드에서 롤오버 작업에 대한 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에 도달하고 ISM이 새 인덱스로 롤오버하면 인덱스가 웜 상태로 전환됩니다. 웜 상태에서는 인덱스에서 다른 작업을 수행할 수 있습니다. 예를 들어 복제본 수를 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에 도달하면 ISM은 새 인덱스로 롤오버합니다. 그 후 30일이 지나면 인덱스가 삭제 상태로 전환되고 ISM은 인덱스를 삭제합니다.
더 많은 정책 예시는 샘플 정책을 참조하십시오.
인덱스에 정책 연결
다음 단계를 완료하십시오.
- OpenSearch Service 콘솔을 엽니다.
- OpenSearch 서비스 콘솔의 도메인 요약에 있는 링크를 사용하여 OpenSearch 대시보드에 액세스합니다.
- 인덱스 관리 탭을 선택합니다.
- ISM 정책을 연결할 인덱스(예: test-index-000001)를 선택합니다.
참고: 인덱스는 정책 관리형 인덱스에서 찾을 수 있습니다. - 정책 적용을 선택합니다.
- (선택 사항) 정책에서 별칭이 필요한 작업을 지정하는 경우 별칭을 입력한 후 적용을 선택합니다.
다음 API를 사용하여 ISM 정책을 연결할 수도 있습니다.
POST _plugins/_ism/add/index_name { "policy_id": "policy_name"}
참고: index_name을 인덱스 이름으로 바꾸고 policy_name을 정책 이름으로 바꾸십시오.
자세한 내용은 OpenSearch 웹 사이트의 작업 추가를 참조하십시오.
기존 인덱스의 정책 업데이트
OpenSearch의 ISM 정책은 버전 관리를 사용합니다. 정책을 업데이트하면 새로 만든 인덱스가 자동으로 최신 버전의 정책을 참조합니다. 그러나 업데이트 전에 만든 인덱스는 계속해서 이전 버전을 참조합니다. 기존 인덱스에 업데이트된 정책을 적용하려면 먼저 인덱스에서 이전 정책을 제거한 다음, 업데이트된 버전을 다시 적용해야 합니다.
기존 인덱스에 ISM 정책을 다시 적용하려면 다음 단계를 완료하십시오.
- OpenSearch Service 콘솔을 엽니다.
- OpenSearch 서비스 콘솔의 도메인 요약에 있는 링크를 사용하여 OpenSearch 대시보드에 액세스합니다.
- 인덱스 관리 탭을 선택합니다.
- 정책 관리형 인덱스 섹션에서 정책 변경을 선택합니다.
- 변경 사항을 적용할 인덱스(예: test-index-000001)를 선택합니다.
- 인덱스의 현재 상태를 선택합니다.
- 새 정책 선택 섹션에서 정책 이름 업데이트를 선택합니다.
- (선택 사항) 정책을 업데이트한 후 인덱스를 다른 상태로 변경하려면 정책이 적용된 후 인덱스를 다음 상태로 전환을 선택합니다. 그런 다음, 드롭다운 목록에서 상태를 선택합니다.
다음 API를 사용하여 ISM 정책을 업데이트할 수도 있습니다.
POST _plugins/_ism/change_policy/indexname { "policy_id": "policy_1"}
참고: index_name을 인덱스 이름으로 바꾸고 policy_1을 정책 이름으로 바꾸십시오.
자세한 내용은 OpenSearch 웹 사이트에서 관리형 인덱스 정책 업데이트를 참조하십시오.
템플릿을 추가하여 정책을 여러 인덱스에 연결
정책을 인덱스 패턴과 일치하는 여러 인덱스에 연결하려면 ISM 템플릿을 만들어 사용하십시오.
다음 API 호출을 사용하여 정책을 만듭니다.
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 웹 사이트에서 인덱스 설명을 참조하십시오.
참고: 인덱스는 OpenSearch 대시보드 인덱스 관리 탭의 관리형 인덱스 섹션에도 채워집니다.
ISM 정책 상태 확인
롤오버 작업의 경우 인덱스가 롤오버되어 웜 상태로 전환되고 복제본 수가 업데이트되면 인덱스가 완료됩니다.
ISM 정책을 사용하는데 인덱스가 제대로 마이그레이션되지 않는 경우 ISM 상태를 확인하십시오.
인덱스의 마이그레이션 상태를 확인하려면 다음 API를 사용합니다.
GET _ultrawarm/migration/index_name/_status
참고: index_name을 상태를 확인할 인덱스의 이름으로 바꾸십시오.
모든 인덱스의 마이그레이션 상태를 가져오려면 다음 API를 사용합니다.
GET _ultrawarm/migration/_status?
참고: 핫 스토리지에서 웜 또는 콜드 스토리지로 데이터를 이동하려면 ISM 정책을 구성하기 전에 도메인에서 웜 스토리지와 콜드 스토리지를 활성화하십시오. ISM 정책에는 스토리지 계층 간에 인덱스를 전환하기 위한 마이그레이션 작업도 명시적으로 포함되어야 합니다. 마이그레이션 작업이 없으면 정책 상태 이름만 변경됩니다. 인덱스는 계속해서 핫 스토리지에 있습니다.
웜 마이그레이션 작업 구성:
{ "name": "warm", "actions": [{ "warm_migration": {}, "retry": { "count": 5, "delay": "1h" }
콜드 마이그레이션 작업 구성:
{ "name": "cold", "actions": [{ "cold_migration": { "timestamp_field": "<your timestamp field>" } }
- 언어
- 한국어

관련 콘텐츠
- 질문됨 3년 전
- 질문됨 2년 전