Amazon OpenSearch Service의 인덱스 상태 관리 - 아마존 OpenSearch 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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 이상이 필요합니다. 전체 설명서는 OpenSearch 설명서에서 확인할 수 있습니다.

중요

더 이상 인덱스 템플릿을 사용하여 새로 생성된 인덱스에 ISM 정책을 적용할 수 없습니다. ISM 템플릿 필드에서 새로 생성된 인덱스를 계속해서 자동으로 관리할 수 있습니다. 이 업데이트에서는 이 설정을 사용하여 기존 CloudFormation 템플릿에 영향을 주는 주요 변경 사항을 소개합니다.

ISM 정책 생성

인덱스 상태 관리를 시작하려면
  1. https://console.aws.amazon.com/aos/home에서 Amazon OpenSearch Service 콘솔을 엽니다.

  2. ISM 정책을 생성하려는 도메인을 선택합니다.

  3. 도메인의 대시보드에서 OpenSearch 대시보드 URL로 이동하여 마스터 사용자 이름과 암호로 로그인합니다. URL은 다음 형식을 따릅니다.

    domain-endpoint/_dashboards/
  4. OpenSearch 대시보드에서 왼쪽 탐색 창을 열고 인덱스 관리(Index Management)를 선택한 다음 정책 생성(Create policy)을 선택합니다.

  5. 시각적 편집기 또는 JSON 편집기를 사용하여 정책을 생성합니다. 시각적 편집기는 보다 체계적인 정책 정의 방법을 제공하므로 사용하는 것이 좋습니다. 정책 생성에 도움을 받으려면 아래 샘플 정책을 참조하세요.

  6. 정책을 생성한 후 하나 이상의 인덱스에 연결합니다.

    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 서비스에서 인덱스 스냅샷 생성 섹션을 참조하세요.

{ "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(자동 롤오버를 위한 ISM 템플릿을 사용한 샘플 정책)을 참조하세요.

차이

OpenSearch 및 Elasticsearch와 비교할 때 Amazon OpenSearch Service의 ISM은 몇 가지 차이점이 있습니다.

ISM 작업

  • OpenSearch Service는 세 가지 고유한 ISM 작업인 warm_migration, cold_migration, cold_delete을(를) 지원합니다.

    • 도메인에 UltraWarm이 활성화된 경우 warm_migration 작업을 수행하면 인덱스가 웜 스토리지로 전환됩니다.

    • 도메인에 콜드 스토리지가 활성화된 경우, cold_migration 작업은 인덱스를 콜드 스토리지로 전환하고 cold_delete 작업은 콜드 스토리지에서 인덱스를 삭제합니다.

    이러한 작업이 설정된 제한 시간 내에 완료되지 않더라도 인덱스 마이그레이션 또는 삭제는 여전히 계속됩니다. 위의 작업 중 하나에 대해 error_notification을 설정하면 시간 초과 기간 내에 완료되지 않은 경우 작업이 실패했음을 알립니다. 단, 알림은 참조용입니다. 실제 작업에는 고유한 제한 시간이 없으며 결국 성공 또는 실패할 때까지 계속 실행됩니다.

  • 도메인에서 OpenSearch 또는 Elasticsearch 7.4 이상을 실행하는 경우, OpenSearch Service는 ISM openclose 작업을 지원합니다.

  • 도메인에서 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