Amazon OpenSearch サービスでのインデックス状態管理 - Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon OpenSearch サービスでのインデックス状態管理

Amazon OpenSearch Service のインデックス状態管理 (ISM) を使ってカスタム管理ポリシーを定義し、ルーチンタスクを自動化して、それらをインデックスおよびインデックスパターンに適用できます。これにより、インデックス操作を実行するために、外部プロセスを設定および管理する必要がなくなります。

ポリシーには、デフォルトの状態と、移行するインデックスの状態一覧が含まれています。各状態内で、実行するアクションのリストと、移行をトリガーする条件を定義できます。典型的なユースケースは、一定期間後に古いインデックスを定期的に削除することです。たとえば、30 日後にインデックスを read_only 状態に移行して、90 日後に最終的に削除するポリシーを定義できます。

ポリシーをインデックスにアタッチすると、ISM は 30~48 分ごとに実行されるジョブを作成し、ポリシーアクションを実行して条件を確認してから、インデックスを別の状態に移行します。このジョブを実行する基本時間は 30 分ごとです。さらに、0~60% のランダムなジッターが追加され、すべてのインデックスから同時にアクティビティが急増しないようにします。クラスタの状態が赤の場合、ISM はジョブを実行しません。

ISM では、OpenSearch または Elasticsearch 6.8 詳細なドキュメントは、OpenSearch ドキュメント

重要

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

ISM ポリシーの作成

ISM の使用を開始するには、[インデックス管理を選択し、[OpenSearch ダッシュボード] のメインメニューからポリシーの作成

ポリシーを作成した後、次のステップは、1 つまたは複数のインデックスにポリシーをアタッチすることです。

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

または、OpenSearch ダッシュボードでインデックスを選択し、ポリシーの適用

ポリシーのサンプル例

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

保温から保温まで、保温から

このサンプルポリシーでは、インデックスをホットストレージからUltraWarmとなり、最終的にコールドストレージに設定してから、インデックスを削除します。

インデックスは、最初はhot状態。10 日後、ISM はそれを移動します。 をwarm状態に移動します。80 日後、インデックスが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": "@timestamp" } } ], "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 テンプレートを使用したサンプルポリシー

Differences

OpenSearch Service や Elasticsearch search search Service と比較すると、いくつかの違いがある。

ISM オペレーション

  • OpenSearch サービスは、3 つの固有の ISM 操作、warm_migration,cold_migration, およびcold_delete

    ドメインにUltraWarmが有効になっている場合、warm_migrationアクションは、インデックスをウォームストレージに移行します。であっても、warm_migrationアクションがタイムアウト期間の設定、ウォームインデックスへの移行はまだ継続しています。

    の設定error_notifcation向けのwarm_migrationアクションによって通知されることがあります。warm_migrationアクションは、タイムアウト期間内に完了しなかった場合に失敗しました。この失敗した通知は、ご自身で参照するためのものです。実際のウォーム移行操作には、固有のタイムアウトはなく、最終的に成功または失敗するまで実行され続けます。

  • ドメインが OpenSearch または Elasticsearch 7.4 以降を実行している場合、OpenSearch サービスは ISMopenおよびcloseオペレーション.

  • ドメインが OpenSearch または Elasticsearch 7.7 以降を実行している場合、OpenSearch サービスは ISMsnapshotオペレーション.

コールド・ストレージ ISM オペレーション

コールドインデックスの場合、?type=_coldパラメーターは、次の ISM API を使用します。

  • ポリシーの追加

  • ポリシーの削除

  • ポリシーの変更

  • 失敗した管理インデックスの再試行

  • Explain インデックス

コールドインデックスのこれらの 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 を使用すると、使用可能なすべての ISM 設定を_cluster/settingsAPI. Amazon OpenSearch Service では、次の設定のみを変更できます。

  • クラスターレベルの設定:

    • enabled

    • history.enabled

  • インデックスレベルの設定:

    • rollover_alias