web-dev-qa-db-ja.com

AWS Elastic Load Balancerを使用しているときにTCP切断されるのはなぜですか?

AWSEC2インスタンスでサーバーを実行しています。サーバーは、ポート80でHTTPを提供し、ポート1935でRTMP(TCP)を提供する必要があります。

単一のインスタンスの実行は正常に機能します。しかし、Elastic Load Balancingを使用して2つのEC2インスタンス間の負荷を分散するとすぐに、RTMP(TCP)接続が1分後に失われます。私たちのアプリケーションは不協和音を許容するはずですが、今はそうではありません。

Haproxyを使用して負荷を分散することで、これらの初期の不一致は発生しません。ただし、Elastic Load Balancerは、自動スケーリング機能があるため魅力的です。

AWS Elastic Load Balancerを使用しているときにこの切断が発生する理由はありますか?

2
Jan Deinhard

L1xのおかげで、AWS DeveloperCommunityフォーラムで自分で答えを見つけました。

何が起こっているのかというと、接続がタイムアウトしているようです。

60秒以内にロードバランサーへの接続でデータの書き込みまたは読み取りが行われない場合、接続は閉じられます。

接続が閉じられないように、ある種のハートビートデータを定期的にソケットに送信できます。 60秒以上かかり、データを送受信しない、どのようなリクエストを実行していますか?

AWS Developet Community

フロームスレッドによると、AWSエンジニアはそれにもかかわらずこの問題を調査しています。おそらく、タイムアウトは近い将来に構成可能です。

今のところ、ハートビートソリューションを試してみます。

1
Jan Deinhard

あなたは彼らにあなたをサポートするように頼むことによってこの問題をより深く調査する必要があると思います。これはあなたの質問にリモートで答えるには少なすぎる情報です:)

0
Istvan