web-dev-qa-db-ja.com

AWS Load BalancerEC2ヘルスチェックリクエストがタイムアウトしました

DevOpsを使用してダウンしてダーティにしようとしていますが、ヘルスチェックリクエストのタイムアウトエラーが発生しています。問題は、Elastic Load BalancerがヘルスチェックをEC2インスタンスに送信し、ネットワークタイムアウトを取得することです。何を間違えたのかわかりません。私は次のとおりです このチュートリアル そして「ElasticLoadBalancerの使用」までのすべてのステップを完了しました。 EC2インスタンスは正常に機能しているようで、EC2インスタンス内からポート9292でローカルホストを正常にカールさせることができます。

EC2インスタンスセキュリティグループのセットアップ: description

Elastic Load Balancerのセットアップ: enter image description here

ELBルーティングのターゲットグループのポート9292がHTTP経由で開いています。これは、ターゲットグループ内の異常なターゲットのスクリーンショットです。 enter image description here

ヘルスチェック構成: enter image description here

EC2インスタンスが含まれているVPCがあり、ELBが同じVPCに接続されています。 Apacheがインストールされておらず、nginxもインストールされていません。私の理解では、これらは必要ありません。 Rails Pumaサーバーを実行していて、成功したcurlリクエストをサーバーに送信できます。

私の勘では、ELBがEC2インスタンスに到達することを許可されていないため、ネットワークタイムアウトが発生し、ヘルスチェックが失敗します。私はこれの原因を見つけることができません。何か案は?これ SO投稿 あまり役に立ちませんでした。セキュリティグループが正しく構成されていませんか? ELBからEC2インスタンスへのルーティングリクエストをブロックする可能性のあるものは他にありますか?

また、EC2インスタンスのネットワークリクエスト/ログを表示する方法はありますか? VPCフローのログが表示され続けますが、もっと簡単な方法があるように感じます。

ここに何かがあります AWSフォーラムに投稿しましたが、役に立ちませんでした。

更新:EC2インスタンス内からターゲットのプライベートIPをうまくカールさせることができます。ターゲットインスタンスではないと思います。セキュリティグループの設定と関係があると思います。基本的にロードバランサーからEC2インスタンスへのすべてのトラフィックを許可しているため、理由を特定できません。

12
Sticky

「VPCのセットアップ」の手順で間違いを犯しました。 RDSインスタンスのサブネットの作成が完了しました。インスタンスの起動に進み、VPCに切り替えたときにAWSが選択したデフォルトのサブネットは、RDS用に作成したサブネットであり、パブリックサブネットではありませんでした。したがって、リクエストを受け取るようにパブリックサブネットを設定しただけなので、EC2インスタンスまたはロードバランサーからの試行は到達できません。

解決策は、新しいインスタンスを作成することでした。今回は、正しいpublicサブネットを選択します。ロードバランサーがパブリックサブネットを指しているときに、元のEC2インスタンスがプライベートサブネットに関連付けられていました。

ここに リンク 私の問題を特定するのに役立った手描きの画像へのリンクです。うまくいけば、セットアップに問題がある他の人を助けることができます。 2MBより大きいので、ここに直接画像を入れませんでした。

それ以上の質問にも答えてくれてうれしいです!

6
Sticky