タグ別アーカイブ: AWS

ELBで二重リクエスト!?

先月、子供が産まれました。
男の子です。
可愛い過ぎて仕事とブログの更新に身が入ってませんw

さて、最近本格的に業務でAWSでのインフラ構築を行うようになったのですが、
ELBを通したHTTPリクエストにて、
謎の現象に悩まされたのでメモしておきます。
大量のデータ更新を行う時間のかかる処理がありまして、
その処理へのリクエストを受け付けてから、
決まって1分を過ぎた頃にもう一度全く同じリクエストが投げられて、
二重実行になってしまうという現象です。

  1. JavaScriptイベントの実装が悪いとブラウザによって二重リクエストが起こることかありますが、今回はその類では無いこと
  2. ELBを通さないとどうやっても発生しないこと

以上のことからELBに原因があると推測してサポートに問い合わせてみました。

回答は、
ELBのリクエストタイムアウトは60秒となっており、
60秒を超えてレスポンスが無い場合は、レスポンスコード408(Request Timeout)を返す。
408が返るとブラウザによっては再度リクエストを送信しなおす。

という現象が発生するそうです。

あ、ちなみに僕には調査のお鉢が回ってきただけなので、
Webシステムでレスポンスを返すまでにそんなにかかる処理を同期で行う時点で間違い。
という突っ込みは無しでお願いしますw

本当は先日JAWS Days 2013に参加してきたので、
それについて書きたいんですけど、
書きたいことがありすぎ&帰ってきて早速の激務でまとめきれないです…orz
いや、全く無いわけじゃないんですけど、そこは息子と奥さんのために使いたいわけで…
このまま旬を過ぎちゃって書けなくなりそうな予感がしてますwww