기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon OpenSearch Service의 인덱스 상태 관리
Amazon OpenSearch Service에서 인덱스 상태 관리(ISM)를 사용하면 주기적으로 수행되는 태스크를 자동화하도록 고객 관리형 정책을 정의하고 해당 정책을 인덱스와 인덱스 패턴에 적용할 수 있습니다. 인덱스 작업을 실행하기 위해 더 이상 외부 프로세스를 설정하고 관리할 필요가 없습니다.
정책에는 기본 상태와 인덱스 전환에 사용할 수 있는 상태 목록이 포함되어 있습니다. 각 상태 내에서 수행할 작업 목록과 이러한 전환을 트리거할 조건을 정의할 수 있습니다. 일반적인 사용 사례는 일정 기간 후에 오래된 인덱스를 주기적으로 삭제하는 것입니다. 예를 들어 인덱스를 30일 후에 read_only
상태로 이동한 다음 90일 후에 삭제하는 정책을 정의할 수 있습니다.
정책을 인덱스에 연결하면 ISM은 5~8분(또는 1.3 이전 클러스터의 경우 30~48분)마다 실행되는 작업을 생성하여 정책 작업을 수행하고 조건을 확인하며 인덱스를 다른 상태로 전환합니다. 이 작업을 실행하는 기본 시간은 5분마다 임의의 0~60% 지터가 추가되어 모든 인덱스에서 동시에 활동이 급증하지 않도록 합니다. 클러스터 상태가 빨간색이면 ISM이 작업을 실행하지 않습니다.
ISM에는 OpenSearch 또는 Elasticsearch 6.8 이상이 필요합니다.
참고
이 설명서에서는 ISM 및 여러 샘플 정책에 대한 간략한 개요를 제공합니다. 또한 Amazon OpenSearch Service 도메인의 ISM과 자체 관리형 OpenSearch 클러스터의 ISM의 차이를 설명합니다. 포괄적인 파라미터 참조, 각 설정에 대한 설명 및 API 참조를 포함한 ISM에 대한 전체 설명서는 OpenSearch 설명서의 Index State Management
중요
더 이상 인덱스 템플릿을 사용하여 새로 생성된 인덱스에 ISM 정책을 적용할 수 없습니다. ISM 템플릿 필드
ISM 정책 생성
인덱스 상태 관리를 시작하려면
-
https://console.aws.amazon.com/aos/home
에서 Amazon OpenSearch Service 콘솔을 엽니다. -
ISM 정책을 생성하려는 도메인을 선택합니다.
-
도메인의 대시보드에서 OpenSearch 대시보드 URL로 이동하여 마스터 사용자 이름과 암호로 로그인합니다. URL은 다음 형식을 따릅니다.
domain-endpoint
/_dashboards/ -
OpenSearch 대시보드에서 왼쪽 탐색 창을 열고 인덱스 관리(Index Management)를 선택한 다음 정책 생성(Create policy)을 선택합니다.
-
시각적 편집기
또는 JSON 편집기 를 사용하여 정책을 생성합니다. 시각적 편집기는 보다 체계적인 정책 정의 방법을 제공하므로 사용하는 것이 좋습니다. 정책 생성에 도움을 받으려면 아래 샘플 정책을 참조하세요. -
정책을 생성한 후 하나 이상의 인덱스에 연결합니다.
POST _plugins/_ism/add/
my-index
{ "policy_id": "my-policy-id
" }참고
도메인에서 레거시 Elasticsearch 버전을 실행 중인 경우,
_plugins
대신_opendistro
를 사용하세요.또는 OpenSearch Dashboards에서 인덱스를 선택하고 정책 적용(Apply policy)을 선택합니다.
샘플 정책
다음 샘플 정책은 일반 ISM 사용 사례를 자동화하는 방법을 보여줍니다.
핫 스토리지, 웜 스토리지, 콜드 스토리지
이 샘플 정책은 인덱스를 핫 스토리지에서 UltraWarm, 그리고 결국 콜드 스토리지로 이동합니다. 그런 다음 인덱스를 삭제합니다.
인덱스는 처음에 hot
상태입니다. 10일 후 ISM이 인덱스를 warm
상태로 전환하고 80일 후, 인덱스가 90일을 경과한 후에는 ISM이 인덱스를 cold
상태로 전환합니다. 1년 후, 서비스는 인덱스가 삭제 중이라는 알림을 Amazon Chime 공간에 보낸 다음 영구적으로 삭제합니다.
콜드 인덱스는 정상 cold_delete
작업이 아닌 delete
작업이 필요합니다. 또한 명시적 timestamp_field
은(는) ISM으로 콜드 인덱스를 관리하기 위해 데이터에 필요합니다.
{ "policy": { "description": "Demonstrate a hot-warm-cold-delete workflow.", "default_state": "hot", "schema_version": 1, "states": [{ "name": "hot", "actions": [], "transitions": [{ "state_name": "warm", "conditions": { "min_index_age": "10d" } }] }, { "name": "warm", "actions": [{ "warm_migration": {}, "retry": { "count": 5, "delay": "1h" } }], "transitions": [{ "state_name": "cold", "conditions": { "min_index_age": "90d" } }] }, { "name": "cold", "actions": [{ "cold_migration": { "timestamp_field": "<your timestamp field>" } } ], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "365d" } }] }, { "name": "delete", "actions": [{ "notification": { "destination": { "chime": { "url": "<URL>" } }, "message_template": { "source": "The index {{ctx.index}} is being deleted." } } }, { "cold_delete": {} }] } ] } }
복제본 수 감소
이 샘플 정책은 7일 후에 복제본 수를 0으로 줄여 디스크 공간을 절약한 다음, 21일 후에 인덱스를 삭제합니다. 이 정책은 인덱스가 중요하지 않으며 더 이상 쓰기 요청을 수신하지 않는다고 가정합니다. 복제본 수가 0이면 데이터 손실의 위험이 있습니다.
{ "policy": { "description": "Changes replica count and deletes.", "schema_version": 1, "default_state": "current", "states": [{ "name": "current", "actions": [], "transitions": [{ "state_name": "old", "conditions": { "min_index_age": "7d" } }] }, { "name": "old", "actions": [{ "replica_count": { "number_of_replicas": 0 } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "21d" } }] }, { "name": "delete", "actions": [{ "delete": {} }], "transitions": [] } ] } }
인덱스 스냅샷 생성
이 샘플 정책은 snapshot
작업을 사용하여 하나 이상의 문서가 포함된 즉시 인덱스의 스냅샷을 생성할 수 있습니다. repository
는 Amazon S3를 등록한 수동 스냅샷 리포지토리의 이름입니다. snapshot
은 스냅샷의 이름입니다. 리포지토리를 등록하기 위한 스냅샷 사전 요구 사항 및 단계는 Amazon OpenSearch Service에서 인덱스 스냅샷 생성 섹션을 참조하세요.
{ "policy": { "description": "Takes an index snapshot.", "schema_version": 1, "default_state": "empty", "states": [{ "name": "empty", "actions": [], "transitions": [{ "state_name": "occupied", "conditions": { "min_doc_count": 1 } }] }, { "name": "occupied", "actions": [{ "snapshot": { "repository": "<my-repository>", "snapshot": "<my-snapshot>" } }], "transitions": [] } ] } }
ISM 템플릿
템플릿 패턴과 일치하는 인덱스를 생성할 때 정책이 해당 인덱스에 자동으로 연결되도록 정책에 ism_template
필드를 설정할 수 있습니다. 이 예제에서 “log”로 시작하는 이름으로 만든 인덱스는 ISM 정책 my-policy-id
와 자동으로 일치됩니다.
PUT _plugins/_ism/policies/
my-policy-id
{ "policy": { "description": "Example policy.", "default_state": "...", "states": [...], "ism_template": { "index_patterns": ["log*"], "priority": 100 } } }
자세한 예제는 Sample policy with ISM template for auto rollover
차이
OpenSearch 및 Elasticsearch와 비교할 때 Amazon OpenSearch Service의 ISM은 몇 가지 차이점이 있습니다.
ISM 작업
-
OpenSearch Service는 세 가지 고유한 ISM 작업인
warm_migration
,cold_migration
,cold_delete
을(를) 지원합니다.이러한 작업이 설정된 제한 시간
내에 완료되지 않더라도 인덱스 마이그레이션 또는 삭제는 여전히 계속됩니다. 위의 작업 중 하나에 대해 error_notification 을 설정하면 시간 초과 기간 내에 완료되지 않은 경우 작업이 실패했음을 알립니다. 단, 알림은 참조용입니다. 실제 작업에는 고유한 제한 시간이 없으며 결국 성공 또는 실패할 때까지 계속 실행됩니다. -
도메인에서 OpenSearch 또는 Elasticsearch 7.4 이상을 실행하는 경우, OpenSearch Service는 ISM
open
및close
작업을 지원합니다.
-
도메인에서 OpenSearch 또는 Elasticsearch 7.7 이상을 실행하는 경우, OpenSearch Service는 ISM
snapshot
작업을 지원합니다.
콜드 스토리지 ISM 작업
콜드 인덱스의 경우 다음과 같은 ISM API를 사용할 때 ?type=_cold
파라미터를 지정해야 합니다.
콜드 인덱스에 대한 이러한 API에는 다음과 같은 추가 차이점이 있습니다.
-
와일드카드 연산자는 끝에서 사용할 때를 제외하고는 지원되지 않습니다. 예를 들어,
_plugins/_ism/<add, remove, change_policy, retry, explain>/logstash-*
는 지원되지만_plugins/_ism/<add, remove, change_policy, retry, explain>/iad-*-prod
는 지원되지 않습니다. -
여러 인덱스 이름 및 패턴을 지원하지 않습니다. 예를 들어,
_plugins/_ism/<add, remove, change_policy, retry, explain>/app-logs
는 지원되지만_plugins/_ism/<add, remove, change_policy, retry, explain>/app-logs,sample-data
는 지원되지 않습니다.
ISM 설정
OpenSearch 및 Elasticsearch에서는 _cluster/settings
API를 사용하여 이용 가능한 모든 ISM 설정을 변경할 수 있습니다. Amazon OpenSearch Service에서는 다음 ISM 설정
-
클러스터 수준 설정:
-
plugins.index_state_management.enabled
-
plugins.index_state_management.history.enabled
-
-
인덱스 수준 설정:
-
plugins.index_state_management.rollover_alias
-