私のプロジェクトの1つは、ロードバランサーの背後に配置している内部Webアプリです。現在のところ、ec2は1つしかなく(本番環境ではさらに多くなります)、ロードバランサーはec2-Instanceに到達できません。
ロードバランサーは、ポート448を介した接続を受け入れ、ポート80のec2-Instanceに転送するように設定されています。ec2-Instanceはコンソールのロードバランサーに一覧表示されますが、ヘルスチェックに失敗し続けます。
さらにデバッグするために、コンソールからテストec2-Instance(54.68.255.208)を作成し、セキュリティグループを使用して、世界中のどこからでも、どのポートでも接続できるようにしました。 Apacheをインストールして、デフォルトのページを提供してもらいました。次に、tcpポートですべてのトラフィックを許可する新しいロードバランサー( http://lb-test-lb-512274268.us-west-2.elb.amazonaws.com/ )を作成しました。 ec2-Instanceをロードバランサーに追加しましたが、ポート80を介してec2-Instanceに問題なく接続できたとしても、明らかな理由もなくヘルスチェックが失敗します。
私たちのオフィスの他の誰もこの問題を抱えていませんが、他の誰もそれを引き起こしている原因についての説明を持っていません。ここで何かが足りないように聞こえますか?
ELBの問題をデバッグする最良の方法は、次のことを行うことです。
インスタンスのセキュリティグループが着信ポート(80)を許可するように設定されていることを確認します
ヘルスチェックが正しく設定されていることを確認してください
tail -f
(または同様の)バランサーに追加しようとしているインスタンスのログ。インスタンスログのヘルスチェッカーからのpingの例:
10.1.2.3 --- [16/Dec/2014:15:03:57 +0000] "GET/health HTTP/1.1" 200 13 "-" "ELB-HealthChecker/1.0"
「リスナー」構成が正しいことを確認します:80から80(例)