AWS アプリケーションロードバランサーの重複リクエスト

AWS アプリケーションロードバランサーの重複リクエスト

アプリケーション ロード バランサーを使用して複数の EC2 インスタンスに重複したリクエストが送信された経験のある方はいらっしゃいますか?

ALB をフロントとする EC2 上に API があり、最近、一部のリクエストが複数のインスタンスに送信され、支払いなどの特定のアクションが複数回発生しているために問題が発生していることに気付きました。

API は .net core を中心に構築されていますが、これは重要ではないと考えてください。この問題は最近発生し始めたもので、常に発生するわけではありません。

誰かこのようなものを見たことがありますか。2011年か2012年ごろの古い問題は見たことがありますが、最近のものはありません。

答え1

有効にするALB アクセスログ(S3 に配信されます) 分析します。

実際には、クライアントがリクエストを複数回送信していることがわかります。これは、ユーザーの操作 (たとえば、ユーザーが支払い処理を待っている間にページを再読み込みする) またはクライアント側のアプリ (JS が応答を待機してタイムアウトし、リクエストを再送信する) によって発生します。ログを見ればわかります。

お役に立てれば幸いです :)

答え2

我々は、従来のELB(ALBではなく)でも同じ現象を確認しています。トラフィックの多い環境では、1日に12回程度、2つのインスタンスがまったく同じリクエストを受信することが時々あるという証拠があります。唯一これらのインスタンスは ELB アクセス ログにあります。

また、ログによると、この問題は少なくとも 3 か月間 (おそらく永久に) 発生していますが、7 月中旬以降、さらに悪化している可能性があります。

関連情報