Amazon OpenSearch Service の HTTP 504 ゲートウェイタイムアウトエラーを解決しようとしています。これを行うにはどうすればよいですか?
簡単な説明
ロードバランサーは、各 OpenSearch Service ドメインの前に配置されます。ロードバランサーは、受信トラフィックをデータノードに分散します。OpenSearch Service リクエストが完了せず、アイドルタイムアウト期間内に確認が返された場合、ロードバランサーは TCP 接続を閉じます。その結果、「HTTP 504 gateway timeout」(HTTP 504 ゲートウェイタイムアウト) エラーが発生します。「HTTP 504 gateway timeout」(HTTP 504 ゲートウェイタイムアウト) エラーは、必ずしもクラスターの問題を示しているわけではありません。これは単に、アイドルタイムアウト時間内にリクエストを完了できなかったことを意味します。
通常、ゲートウェイのタイムアウトエラーが発生するのは、同時に送信したリクエストが多すぎるか、複雑なリクエストを送信した場合です。どちらの場合も、結果は同じで、OpenSearch Service はアイドルタイムアウト期間内にリクエストを完了できません。
解決方法
HTTP 504 ゲートウェイのタイムアウトエラーを解決するには、次の 1 つまたは複数の方法を使用します。
- OpenSearch Service インデックスのスローログを有効にしてから、ログ記録のしきい値を指定します。スローログは、特定のクエリの完了に時間がかかるかどうかを判断するのに役立ちます。その場合は、クエリを調整して、504 エラーを解決します。詳細については、「Viewing Amazon OpenSearch Service slow logs」(OpenSearch Service のスロー ログの表示) を参照してください。
- OpenSearch Service がリクエストのためにクエリする必要があるデータの量を減らします。これにより、リクエストが完了するまでの時間が短縮されます。
- より大きなインスタンスタイプに切り替える。詳細については、インスタンスタイプとテストの選択を参照してください。
- エクスポネンシャルバックオフを設定し、アプリケーションのメカニズムを再試行して、タイムアウトしたリクエストが再送信されるようにします。
- 個別のリクエストの代わりに一括リクエストを使用します。これにより、クラスターのリクエストごとのオーバーヘッドが減ります。
関連情報
How can I prevent HTTP 503 Service Unavailable errors in Amazon OpenSearch Service?
Creating and managing Amazon OpenSearch Service domains