Amazon Elasticsearch Service ドメインにおける低いストレージ容量に対するトラブルシューティングの方法を教えてください。

最終更新日: 2021 年 3 月 25 日

Amazon Elasticsearch Service (Amazon ES) ドメインのストレージ容量が不足しており、エラーが表示されました。解決方法を教えてください。

簡単な説明

Amazon ES ドメインには、ワークロードの処理に一定のストレージ容量要件があります。ClusterBlockException エラーは、Amazon ES ドメインのストレージ容量が不足したことを理由として発生する可能性があります。例えば、Amazon ES クラスターノードにストレージを割り当てると、その容量の最大 20% (20 GB) が予約容量になります。また、Linux などのオペレーティングシステムは、ファイルシステムの 5% を予約して、root ユーザーが実行する重要なプロセスをサポートします。Amazon ES ストレージ容量の要件の詳細については、ストレージ要件の計算をご参照ください。

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

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

データストレージソースによっては、追加のトラブルシューティングテクニックを採用する必要がある場合があります。

解決方法

ストレージ設定の更新

重要: 設定を更新する前に、ブルー/グリーンデプロイメントをトリガーする可能性のある設定変更を確認してください。また、専用のマスターノードタイプが推奨されるノードタイプであることを確認してください。

cat allocation コマンドを使用して、クラスター内の各ノードで使用できるストレージ容量を確認します。

curl ES_Endpoint/_cat/allocation?v

Amazon ES ドメインの設定を更新するには、次の手順に従います。

1.    AWS マネジメントコンソールにサインインします。

2.    Amazon ES コンソールを開きます。

3.    ストレージを追加する Amazon ES ドメインを選択します。

4.    [Edit Domain] (ドメインの編集) を選択します。

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

注: ストレージに Amazon EBS ボリュームを使用している場合は、[Storage configuration] (ストレージ設定) を更新してください。あるいは、データノードの数を更新することもできます。

6.    [Submit] (送信) を選択します。

ドメインがデータストレージに Amazon EBS ボリュームを使用する場合

ドメインがストレージに Amazon EBS ボリュームを使用する場合は、次のアプローチを検討してください。

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

データストレージに Amazon EC2 I3 インスタンスを使用している場合は、次のアプローチを検討してください。

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