スキップしてコンテンツを表示

OpenSearch Service ドメインでストレージ空き容量が不足する場合の解決策を教えてください。

所要時間2分
0

Amazon OpenSearch Service ドメインのストレージ空き容量不足の解決策を教えてください。

解決策

OpenSearch Service ドメインには、準拠する必要がある空き容量に関する要件が適用されます。ドメインの空き容量が枯渇した場合、"ClusterBlockException" エラーが発生する可能性があります。

空き容量不足の問題を解決するには、次の 1 つまたは複数の手順を実行します。

不均衡なシャードがないか確認する

各シャードが均衡していない (ディスク容量の不均衡) 場合、一部のノードで空き容量が不足する可能性があります。この問題を解決するには、シャードをすべてのノードに均等に分散します。

クラスター内の各ノードで使用可能なストレージ容量を確認するには、次のコマンドを実行します。

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

注: aos_endpointOpenSearch Service コンソール に表示されるエンドポイントに置き換えてください。

出力例:

shards | disk.indices | disk.used | disk.avail | disk.total | disk.percent | host         | ip          | node
8    |   989.4kb    |   25.9gb    |   32.4gb   |   58.4gb   |   44         | 192.0.2.0    | 192.0.2.3   | node1
8    |   962.4kb    |   25.9gb    |   32.4gb   |   58.4gb   |   44         | 192.0.2.1    | 192.0.2.4   | node2

出力には、各ノードのディスク容量に関するメトリクスが表示されます。OpenSearch Service は、内部運用に備えて各 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから 20 GiB または利用可能な容量の 20% を予約します。上記の cat/allocation に関する出力には、予約済みストレージは含まれません。リザーブドストレージと合計データストレージを確認するには、Amazon CloudWatch の OpenSearch Service メトリクス FreeStorageSpace を確認してください。

注: cat/allocation には予約済みデータが含まれないため、値は常に OpenSearch Service コンソールに表示される容量よりも低くなります。

ドメインの Amazon EBS ボリュームのサイズを増やす

ドメインでストレージに Amazon Elastic Block Store (Amazon EBS) ボリュームを使用している場合は、EBS ボリュームのサイズを増やします

EBS ボリュームのサイズを増やすことができない場合は、次の 1 つまたは複数の手順を実行してクラスターをスケーリングします。

注: データストレージに Amazon EC2 I3 インスタンスを使用している場合は、クラスターにノードを追加するか、インスタンスタイプをスケールアップします。インスタンスをスケーリングすると、ブルー/グリーンデプロイがトリガーされる可能性があります。

未使用のインデックスを削除する

ドメインに保存されたデータ量を削減するには、使用されていないインデックスやドキュメントを削除する、古いインデックスを最適化する、ドメインのレプリカ数を削減するなどの方法があります。クラスターのディスク使用率が既に最大に達している場合は、EBS ボリュームまたはノードをスケーリングする必要があります。

注: ドメインのレプリカ数を減らすと、耐障害性が低下します。インデックスごとに 1 つ以上のレプリカを構成することを推奨します。

まず、Amazon Simple Storage Service (Amazon S3) バケットに不要なインデックスのバックアップを作成します。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

1 つのインデックスを削除するには、次のコマンドを実行します。

DELETE index-name

注: index-name を実際のインデックス名に置き換えてください。

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

DELETE index-pattern

注: index-pattern を目的のインデックスパターンに置き換えてください。

ISM を使用して空き容量不足に対処する

Index State Management (ISM) を使用して OpenSearch Service のインデックスをロールオーバーします。ISM では、空き容量不足などの問題を軽減するためのカスタム管理ポリシーを定義できます。たとえば、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 indexes",
        "last_updated_time": 1658834661281,
        "schema_version": 13,
        "error_notification": null,
        "default_state": "example_hot_state",        
        "states": [
            {
                "name": "example_hot_state",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": "50m"  
                        }
                    }
                ]
            },
            {
                "name": "delete",                    
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [                  
                    "sample*"
                ],
                "priority": 100,                    
                "last_updated_time": 1658834436349
            }
        ]
    }
}

注: 上記のポリシーは、ポリシーに追加したインデックスパターンのすべてのインデックスにアタッチされます。

ISM ポリシーをインデックスにアタッチするには、次のコマンドを実行します。

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

注: your-index-* を目的のインデックスまたはインデックスパターンに、your_policy_id を目的のポリシー ID に置き換えてください。

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

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

クラスター内の利用可能なストレージ量をモニタリングするには、FreeStorageSpace メトリクスを使用します。空き容量が不足した際に通知を受信するには、FreeStorageSpace に対する CloudWatch アラームを作成します。

詳細については、「Recommended CloudWatch alarms for Amazon OpenSearch Service (Amazon OpenSearch Service で推奨される CloudWatch アラーム)」を参照してください。

関連情報

Operational best practices for OpenSearch Service Amazon OpenSearch Service 運用のベストプラクティス)

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

AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ