Amazon Elasticsearch Service で HTTP 503 サービスを利用できませんというラーを解決する方法を教えてください。

最終更新日: 2020 年 11 月 10 日

Amazon Elasticsearch Service (Amazon ES) ドメインでクエリを実行すると、HTTP 503 サービスを利用できませんというエラーが発生します。このエラーの解決方法を教えてください。

簡単な説明

各 Amazon ES ドメインの前にロードバランサーが配置されています。ロードバランサーは、受信トラフィックをデータノードに分散します。HTTP 503 エラーは、クラスター内の 1 つ以上のデータノードが過負荷になっていることを示します。高価なクエリや着信トラフィックによってノードが過負荷になると、十分な容量を確保できないため、他の着信リクエストを処理できません。

注: Amazon CloudWatch の RequestCount メトリクスを使用して、HTTP レスポンスコードを追跡できます。

解決方法

HTTP 503 エラーを解決するには、以下のいずれかの方法を使用します。

多くのコンピューティングリソースをプロビジョニングする

クエリのリソース使用率を減らす

  • シャードおよびクラスターアーキテクチャのベストプラクティス通りに進めていることを確認します。設計が不十分なクラスターは、使用可能なすべてのリソースを使用できるわけではありません。一部のノードは、他のノードがアイドル状態にあるときに過負荷になる可能性があります。Elasticsearch は、過負荷になったノードからドキュメントを取得できません。シャードとクラスターの詳細なベストプラクティスについては、Amazon Elasticsearch Service を始めよう: シャード数の算出方法を参照してください。
  • ドメインへの同時実行リクエストの数を減らします。
  • クエリの範囲を狭めます。たとえば、特定の時間枠でクエリを実行する場合は、日付の範囲を短めに設定します。Kibana でインデックスパターンを設定して、結果をフィルタリングすることもできます。
  • 大きいインデックスで選択 * クエリを実行しないようにします。代わりに、フィルターを使用してインデックスの一部をクエリし、できる限り少ないフィールドを検索します
  • インデックスを再生成してシャードの数を減らします。Elasticsearch クラスターにあるシャードが多いほど、運送会社の取得エラーが発生する可能性が高くなります。各シャードには独自のリソース割り当てとオーバーヘッドがあるため、多数のシャードは Elasticsearch クラスターに負荷をかけます。シャード数を減らすには、Amazon Elasticsearch Service (Amazon ES) ドメインが「処理中」状態のまま変わらないのはなぜですか? を参照してください。