私は AWS Elastic Beanstalk を使用していますが、環境をデプロイすると、ヘルスチェックが赤に変わりますが、その理由の説明が見つかりません。
Monitor
をクリックしてもあまり役に立ちません:
環境が赤くなる理由についてより具体的な情報を入手する方法はありますか?
詳細については、EC2にこの環境の正常なインスタンスがあり、SSHを実行してHTTPリクエストに応答しますが、ロード時は http://xxx.elasticbeanstalk.com/ ブラウザから、リクエストがタイムアウトします。
これは古い質問ですが、このWebサイトにアクセスする人々のために、ここに更新があります。 Elastic Beanstalkは、拡張アプリケーションのヘルスモニタリングのサポートを最近発表しました。
https://aws.Amazon.com/blogs/aws/elastic-beanstalk-update-enhanced-application-health-monitoring/
健康の色とともに、環境の健康が移行する理由を英語で説明する「原因」も発見できます。
拡張ヘルスレポートについては、こちらもご覧ください。 http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html
AWSはヘルス画面ではほとんど役に立たず、画面に「重度」と表示されるだけです。メイン画面でも確認できますが、Amazonのプログラマーがかなり役に立たない画面を作成するのはなぜでしょうか。コードのデプロイ中にこれが発生した場合、その理由の1つは、インスタンスt1.microまたはt2.microが割り当てられ、非常に少量のリソースを共有していることです。展開中はリソースを利用できないようです。あなたが支払う準備ができているなら、あなたはあなたの資源を手に入れます。
正しいアドレスで返信していることを確認する必要がある場合があります。
サーバーアクセスログをチェックして、beanstalkがヒットしようとしているものを確認し、そのアドレスで応答することを確認します。
これがまさに私の問題でした。私のアプリケーションでは、ログインしていないユーザーがログインページ(302)にリダイレクトされます。 EC2インスタンスの「LOAD BALANCING」の下にある「ターゲットグループ」の「ヘルスチェック」タブを編集しました。すでに存在する200に302を追加しました(カンマ区切り)。現在は機能しています。
Elastic Beanstalkは、ELBによって提供されるアプリケーションヘルスチェックモニタリングを使用して、インスタンスに異常がないかどうかを検出します。これは、アプリケーションのデプロイ中でも継続されます。アプリケーションの起動とデプロイに長い時間がかかる場合、ELBは再起動中に1つ以上のインスタンスが正常でないことを確認し、Elastic Beanstalkが正常性ステータスを「黄色」または「赤色」に変更します。
ただし、これが根本的な原因である場合、ステータスはまもなく「緑」に戻るはずです。ヘルスチェックが赤のままの場合は、アプリケーションに別の問題がある可能性があります。
私にとって、これは次の理由であることがわかりました:
302
のようなものに行った場合、/
および200
に直接移動すると、アプリケーションはコード/index.html
を返し、デフォルトのヘルスチェックパスは/
です。200
のみを探しました。それはそのような詳細になることができます。したがって、ロードバランサーのヘルスチェックと、取得している特定のリターンコード、または同様に単純なものから始めることから始めます。