OpenSearch Service ドメインにおける低ストレージ容量をトラブルシューティングするにはどうすればよいですか?

所要時間2分
0

Amazon OpenSearch Service ドメインのストレージ容量が不足したために、エラーが表示されました。

簡単な説明

お使いの OpenSearch Service ドメインには、ワークロード処理用のストレージ容量要件があります。OpenSearch Serviceドメインのストレージ容量の不足による ClusterBlockException エラーが発生する可能性があります。例として、クラスターノードにストレージを割り当てた場合、その容量 (20 GB) の最大 20% が予約済みの容量となります。また、Linux などの OS では、root ユーザーが実行する重要なプロセスをサポートするために、ファイルシステムの 5% を予約します。OpenSearch Service のストレージ容量要件について詳しくは、「ストレージ要件の計算」を参照してください。

低ストレージ容量の問題を解決するには、以下の方法を実行してください。

  • すべてのノードにシャードが均等に分散されるように、クラスターのシャーディング戦略を更新します。
  • ドメインの Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズを増やします。また、OpenSearch Service ドメインに、クラスターノードを追加することもできます。
  • ドメインに保存されるデータの量を減らします。不要なファイルを削除したり古いインデックスを最適化したり、ドメインのレプリカ数を減らしたりします。最初に手動スナップショットを作成してください。
    注: ドメインのレプリカ数を減らすと、フォールトトレランスが低下する可能性があります。ベストプラクティスは、インデックスごとに 1 つ以上のレプリカを構成することです。
  • インデックス状態管理 (ISM) を使用して低ストレージ容量を管理します。
  • Amazon CloudWatch メトリクスを使用してクラスター内で使用可能なストレージの量をモニタリングします。

解決方法

ストレージ構成設定の更新

**重要:**構成設定を更新する前に、ブルー/グリーンデプロイを開始できる構成の変更を確認します。また、専用のプライマリノードタイプが推奨されるノードタイプであることを確認します。

Elastic のウェブサイトにある cat allocationcat を使用して、クラスター内の各ノードで使用可能なストレージ容量を確認します。

curl -XGET "es_endpoint/_cat/allocation?v"

penSearch Service のドメイン構成設定を更新するときは、以下の手順を実行してください。

1.     OpenSearch Service コンソールを開きます。

2.     ナビゲーションペインの [マネージド型クラスター] で、[ドメイン] を選択します。

3.    ストレージの追加先にしたいドメインを選択します。

4.    ドメイン設定を更新します。

注: ストレージに Amazon EBS ボリュームを使用している場合は、ストレージ構成を更新します。または、データノードの数を更新する方法もあります。

5.    [送信] を選択します。

ドメインでデータストレージに EBS ボリュームが使用されている場合

ドメインでストレージに EBS ボリュームが使用されている場合は、以下のいずれかのアクションを実行します。

  • EBS ボリュームのサイズを増やします最大ボリュームサイズは、ノードのインスタンスの種類または Elasticsearch のバージョンタイプによって異なります。したがって、例えば、512 GiB は、Elasticsearch バージョン 1.5 での最大ボリュームサイズとなります。
  • EBS ボリュームのサイズを増やすことができない場合は、ノードを追加するか、ドメインをスケールアップして、新しい EBS 制限を選択します。EBS ボリュームの詳細については、「EBS volume size quotas」を参照してください。
  • Amazon Simple Storage Service (Amazon S3) バケットへの不要なインデックスのバックアップを作成します。次に、OpenSearch Service クラスターからインデックスを削除し、ディスク領域を解放します。または、Python Package Index のウェブサイトにある OpenSearch Service のデータをローテーションする Curator を使用することもできます。または、ISM を使用して OpenSearch Service でインデックスをローテーションすることもできます。
    注: バックアップを作成するには、手動スナップショットのリポジトリを設定する必要があります。

お使いのドメインで、データストレージに Amazon Elastic Compute Cloud (Amazon EC2) I3 インスタンスを使用している場合

データストレージに Amazon EC2 I3 インスタンスを使用している場合は、以下のいずれかのアクションを実行します。

  • OpenSearch Service クラスターにさらにノードを追加します。
  • インスタンスタイプをスケールアップして、より多くのストレージ容量を取得します。
  • OpenSearch Service クラスターから不要なインデックスを削除します。

未使用または古いインデックスの削除

インデックスの作成日は、以下のコマンドで確認できます。

GET _cat/indices?h=h,s,i,id,p,r,dc,dd,ss,creation.date.string&s=creation.date.string:desc

単一のインデックスを削除するには、以下のコマンドを実行します。

DELETE <index-name>

複数のインデックスを削除するには、以下のコマンドを実行します。

DELETE cwl-index-*

ISM を使用して低ストレージ容量を管理する

ISM を使用すると、ルーチンタスクを自動化して OpenSearch Service のインデックスとインデックスパターンに適用できます。また、ディスク容量が少ないなどの問題の管理に役立つカスタム管理ポリシーを定義できます。例えば、rollover 操作と ISM ポリシーを使用して、インデックスサイズなどの条件に基づいて古いインデックスの削除を自動化できます。rollover 操作は、既存のインデックスが定義済みの条件を満たしたときに、ターゲットを新しいインデックスにロールオーバーします。

次の ISM ポリシーの例では、50 分後にインデックスを削除します。

PUT _plugins/_ism/policies/delete_ism_policy
{
    "policy": {
        "policy_id": "delete_ism_policy",
        "description": "A simple default policy that deletes old unused indices“,
        "last_updated_time": 1658834661281,
        "schema_version": 13,
        "error_notification": null,
        "default_state": "example_hot_state",        #Default state
        "states": [
            {
                "name": "example_hot_state",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": “50m”   #Note that after 50 minutes index will transit from hot_state to delete state
                        }
                    }
                ]
            },
            {
                "name": "delete",                    #Indices moved to delete state
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [                  #This ISM policy attaches to all indices for the index pattern and you can mention your index pattern here
                    "sample*"
                ],
                "priority": 100,                     #Priority can be set from 0 to 100
                "last_updated_time": 1658834436349
            }
        ]
    }
}

次の API 呼び出しを使用し、インデックスに、ISM ポリシーを手動でアタッチします。

POST _plugins/_ism/add/your-index-*
{
     "policy_id": "<policy_id>"
}

詳細については、「ISM を使用して Amazon OpenSearch Service での低ストレージ容量を管理するにはどうすればよいですか?」を参照してください。

CloudWatch アラームを使用してストレージをモニタリングする

CloudWatch FreeStorageSpace メトリクスを使用して、クラスター内の使用可能なストレージの容量をモニタリングすることができます。ストレージ容量が少なくなったときに毎回、通知を受け取るには、CloudWatch アラームを設定します。

詳細については、「Monitoring OpenSearch cluster metrics with Amazon CloudWatch」を参照してください。

関連情報

Operational best practices for Amazon OpenSearch Service

Amazon OpenSearch Service ドメインの耐障害性を高めるにはどうすればよいですか?

Amazon OpenSearch Service クラスターのステータスが赤または黄色なのはなぜですか?

AWS公式
AWS公式更新しました 1年前
コメントはありません