Amazon OpenSearch Service でのインデックス状態管理 - Amazon 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 以降が必要です。

注記

このドキュメントでは、ISM の簡単な概要といくつかのサンプルポリシーについて説明します。また、Amazon OpenSearch Service ドメインの ISM がセルフマネージド OpenSearchクラスターの ISM とどのように異なるかについても説明します。包括的なパラメータリファレンス、各設定の説明、API リファレンスを含む ISM の完全なドキュメントについては、 OpenSearch ドキュメントの「インデックス状態管理」を参照してください。

重要

インデックステンプレートを使用して、新しく作成されたインデックスに ISM ポリシーを適用することはできなくなりました。ISM テンプレートフィールドを使用して、新しく作成されたインデックスを引き続き自動的に管理することができます。この更新では、この設定を使用して既存の CloudFormation テンプレートに影響を与える重大な変更が導入されました。

ISM ポリシーを作成する

インデックス状態管理を開始するには
  1. https://console.aws.amazon.com/aos/home で Amazon OpenSearch Service コンソールを開きます。

  2. ISM ポリシーを作成するドメインを選択します。

  3. ドメインのダッシュボードから Dashboards URL OpenSearch に移動し、マスターユーザー名とパスワードでサインインします。URL はこの形式に従います。

    domain-endpoint/_dashboards/
  4. OpenSearch Dashboards 内の左側のナビゲーションパネルを開き、インデックス管理 を選択し、ポリシー を作成します

  5. ビジュアルエディタ または JSON エディタ を使用してポリシーを作成します。より構造化された方法でポリシーを定義できるビジュアルエディタを使用することをお勧めします。ポリシーの作成については、以下の サンプルポリシー を参照してください。

  6. ポリシーを作成したら、それを 1 つ以上のインデックスにアタッチします。

    POST _plugins/_ism/add/my-index { "policy_id": "my-policy-id" }
    注記

    ドメインで従来の Elasticsearch バージョンを実行している場合は、_plugins の代わりに _opendistro を使用します。

    または、 OpenSearch Dashboards でインデックスを選択し、ポリシーの適用 を選択します。

サンプルポリシー

次のサンプルポリシーは、一般的な ISM ユースケースを自動化する方法を示しています。

ホットからウォーム、またコールドストレージまで

このサンプルポリシーは、インデックスをホットストレージから に移動しUltraWarm、最終的に に移動します。
 コールドストレージ 。次に、インデックスを削除します。

インデックスは、最初は hot 状態です。10 日後、ISM はインデックスを warm 状態に移動します。その 80 日後、90 日が経過したインデックスは cold 状態に移動します。1 年後、サービスは、インデックスを削除中であるという通知を Amazon Chime ルームに送信してから、完全にインデックスを削除します。

コールドインデックスでは、通常の delete オペレーションではなく、cold_delete オペレーションが必要であることに注意してください。また、ISM でコールドインデックスを管理するには、データに明示的な timestamp_field が必要であることに注意してください。

{ "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 日後にレプリカ数をゼロに減らし、21 日後にインデックスを削除します。このポリシーは、インデックスが重要ではなく、書き込みリクエストをこれ以上受信しないことを前提としています。レプリカ数をゼロにすると、データ損失のリスクがあります。

{ "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 オペレーションを使用して、インデックスに少なくとも 1 つのドキュメントが含まれているとすぐに、インデックスのスナップショットを撮ります。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 } } }

より詳細な例については、「自動ロールオーバー用 ISM テンプレートを使用したサンプルポリシー」を参照してください。

差異

OpenSearch と Elasticsearch と比較して、Amazon OpenSearch Service の ISM にはいくつかの違いがあります。

ISM オペレーション

  • OpenSearch サービスは、、、および の 3 つの一意の ISM warm_migrationオペレーションをサポートしますcold_migrationcold_delete

    • ドメインで UltraWarmが有効になっている場合、 warm_migrationアクションはインデックスをウォームストレージに移行します。

    • ドメインでコールドストレージが有効になっている場合、cold_migration アクションはインデックスをコールドストレージに移行し、cold_delete アクションはインデックスをコールドストレージから削除します。

    これらのアクションのいずれかが設定されたタイムアウト期間内に完了しない場合でも、ウォームインデックスへの移行は継続されます。上記のアクションのいずれかに error_notification を設定すると、タイムアウト期間内にアクションが完了しなかった場合に、そのアクションが失敗したことが通知されますが、この通知は参考用です。実際のオペレーションに固有のタイムアウトはなく、最終的に成功または失敗するまで実行が継続されます。

  • ドメインが OpenSearch または Elasticsearch 7.4 以降を実行している場合、 OpenSearch Service は ISM openおよび closeオペレーションをサポートします。

  • ドメインが OpenSearch または Elasticsearch 7.7 以降を実行している場合、 OpenSearch サービスは 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