

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

# チュートリアル: Index State Management プロセスの自動化
<a name="ism-tutorial"></a>

このチュートリアルでは、日常的なインデックス管理タスクを自動化して、それらをインデックスおよびインデックスパターンに適用する ISM ポリシーの実装方法を示します。

Amazon OpenSearch Service の [Index State Management (ISM)](ism.md) を使用すると、反復的なインデックス管理アクティビティを自動化できるため、追加のツールを使用してインデックスのライフサイクルを管理する必要がなくなります。インデックスが作成されてから経過した時間、サイズ、その他の条件に基づいてこれらのオペレーションを自動化するポリシーを、すべて Amazon OpenSearch Service ドメイン内から作成できます。

OpenSearch Service は、アクティブな書き込みと低レイテンシーの分析用のデフォルトの「ホット」状態、最大 3 ペタバイトの読み取り専用データ用の UltraWarm、無制限の長期アーカイブ用のコールドストレージの 3 つのストレージ階層をサポートします。

このチュートリアルでは、日次インデックスで時系列データを処理するサンプルユースケースをご紹介します。このチュートリアルでは、アタッチされた各インデックスの自動スナップショットを 24 時間後に作成するポリシーを設定します。その後、2 日後にインデックスをデフォルトのホット状態から UltraWarm ストレージに移行し、30 日後にコールドストレージに移行して、最後に 60 日後にインデックスを削除します。

## 前提条件
<a name="ism-tutorialprerequisites"></a>
+ OpenSearch Service のドメインでは、Elasticsearch バージョン 6.8 が実行されている必要があります。
+ ドメインで [UltraWarm](ultrawarm.md) と[コールドストレージ](cold-storage.md)が有効になっている必要があります。
+ ドメインの[手動スナップショットリポジトリを登録](managedomains-snapshot-registerdirectory.md)する必要があります。
+ ユーザーロールには、OpenSearch Service コンソールにアクセスするための十分な許可が必要です。必要に応じて、[ドメインへのアクセスを検証して設定](ac.md)します。

## ステップ 1: ISM ポリシーを設定する
<a name="ism-tutorial-policy"></a>

まず、OpenSearch Dashboards で ISM ポリシーを設定します。

1. OpenSearch Service コンソールのドメインダッシュボードから、OpenSearch Dashboards の URL に移動して、マスターユーザー名とパスワードを使用してサインインします。URL はこの形式に従います: `domain-endpoint/_dashboards/`。

1. OpenSearch Dashboards で、**[Add sample data]** (サンプルデータを追加) を選択し、1 つ以上のサンプルインデックスをドメインに追加します。

1. 左側のナビゲーションパネルを開き、**[Index Management]** (インデックス管理)、**[Create policy]** (ポリシーの作成) の順に選択します。

1. ポリシーには `ism-policy-example` という名前を付けます。

1. デフォルトのポリシーを次のポリシーに置き換えます。

   ```
   {
     "policy": {
       "description": "Move indexes between storage tiers",
       "default_state": "hot",
       "states": [
         {
           "name": "hot",
           "actions": [],
           "transitions": [
             {
               "state_name": "snapshot",
               "conditions": {
                 "min_index_age": "24h"
               }
             }
           ]
         },
         {
           "name": "snapshot",
           "actions": [
             {
               "retry": {
                 "count": 5,
                 "backoff": "exponential",
                 "delay": "30m"
               },
               "snapshot": {
                 "repository": "snapshot-repo",
                 "snapshot": "ism-snapshot"
               }
             }
           ],
           "transitions": [
             {
               "state_name": "warm",
               "conditions": {
                 "min_index_age": "2d"
               }
             }
           ]
         },
         {
           "name": "warm",
           "actions": [
             {
               "retry": {
                 "count": 5,
                 "backoff": "exponential",
                 "delay": "1h"
               },
               "warm_migration": {}
             }
           ],
           "transitions": [
             {
               "state_name": "cold",
               "conditions": {
                 "min_index_age": "30d"
               }
             }
           ]
         },
         {
           "name": "cold",
           "actions": [
             {
               "retry": {
                 "count": 5,
                 "backoff": "exponential",
                 "delay": "1h"
               },
               "cold_migration": {
                 "start_time": null,
                 "end_time": null,
                 "timestamp_field": "@timestamp",
                 "ignore": "none"
               }
             }
           ],
           "transitions": [
             {
               "state_name": "delete",
               "conditions": {
                 "min_index_age": "60d"
               }
             }
           ]
         },
         {
           "name": "delete",
           "actions": [
             {
               "cold_delete": {}
             }
           ],
           "transitions": []
         }
       ],
       "ism_template": [
         {
           "index_patterns": [
             "index-*"
           ],
           "priority": 100
         }
       ]
     }
   }
   ```
**注記**  
`ism_template` フィールドは、新しく作成され、かつ、指定された `index_patterns` のいずれかに一致するインデックスにポリシーを自動的にアタッチします。この場合は、`index-` で始まるすべてのインデックスです。このフィールドは、環境内のインデックス形式に一致するように変更できます。詳細については、「[ISM テンプレート](ism.md#ism-template)」を参照してください。

1. ポリシーの `snapshot` セクションで、`snapshot-repo` を、ドメイン用に登録した[スナップショットリポジトリ](managedomains-snapshot-registerdirectory.md)の名前に置き換えます。オプションで、`ism-snapshot` を置き換えることもできます。これは、作成時のスナップショットの名前となります。

1. **[作成]** を選択します。ポリシーが **[State management policies]** (状態管理ポリシー) ページに表示されるようになりました。

## ステップ 2: ポリシーを 1 つ以上のインデックスにアタッチする
<a name="ism-tutorial-attach"></a>

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

1. **[Hot indicies]** (ホットインデックス) タブにアクセスし、ステップ 1 で追加したすべてのサンプルインデックスをリスト化する `opensearch_dashboards_sample` を検索します。

1. すべてのインデックスを選択し、**[Apply policy]** (ポリシーを適用) を選択してから、作成したばかりの **ism-policy-example** ポリシーを選択します。

1. **[Apply]** (適用) を選択します。

**[Policy managed indices]** (ポリシー管理インデックス) ページで、インデックスがさまざまな状態を経るのをモニタリングできます。