- 新しい順
- 投票が多い順
- コメントが多い順
AWS Lightsailのロードバランサーのヘルスチェックが通らない問題について、以下の点を確認し、対応することをお勧めします:
-
ヘルスチェックのパス設定: デフォルトでは、Lightsailはアプリケーションのルート(/)に対してヘルスチェックを行います。あなたの場合、"/health"エンドポイントを使用しているようですので、ロードバランサーの設定でヘルスチェックのパスを"/health"に変更してください。
-
ファイアウォールの設定: 各Lightsailインスタンスのファイアウォール(セキュリティグループ)が、ロードバランサーからのトラフィックを許可していることを確認してください。特に、ヘルスチェック用のポート(通常はHTTPの80番またはHTTPSの443番)が開放されていることを確認します。
-
アプリケーションの設定: 各インスタンス上のアプリケーション(Laravel)が、ロードバランサーのIPアドレスからのリクエストを適切に処理できるよう設定されていることを確認してください。
-
SSL/TLS証明書: HTTPSを使用している場合、ロードバランサーに適切なSSL/TLS証明書が設定されていることを確認してください。証明書の不一致がヘルスチェックの失敗の原因となる可能性があります。
-
静的IPアドレス: 各インスタンスに静的IPアドレスを割り当てていることは、通常、ロードバランサーのヘルスチェックには影響しません。ただし、ロードバランサーの設定で、これらの静的IPアドレスが正しく登録されていることを確認してください。
-
ヘルスチェックの間隔とタイムアウト: ヘルスチェックの間隔とタイムアウトの設定を確認し、必要に応じて調整してください。アプリケーションの応答時間が長い場合、タイムアウトを長くする必要があるかもしれません。
-
アプリケーションのログ: 各インスタンス上のアプリケーションログを確認し、ヘルスチェックリクエストが到達しているか、そしてどのように処理されているかを確認してください。
これらの点を確認し、必要な調整を行うことで、ロードバランサーのヘルスチェックが正常に機能するようになる可能性が高いです。問題が解決しない場合は、AWS Supportに連絡して詳細な診断を依頼することも検討してください。
Sources
Load balancers - Amazon Lightsail
"/health"エンドポイントにアクセスした際にHTTPステータスコード200でレスポンスが返るように設定されていますか?
ロードバランサーのヘルスチェックはHTTPステータスコード200以外だと失敗と判断します。
https://repost.aws/ja/knowledge-center/lightsail-load-balancer-troubleshoot
Webサーバのアクセスログをご確認いただいてヘルスチェックのリクエストが200で応答しているかご確認ください。
コメントありがとうございます。 ==== location /health { access_log off; return 200 '{"status":"ok"}'; add_header Content-Type application/json; } ====
上記のようにし、 curl -i https://{domain.co.jp}/health を実行すると HTTP/2 200 date: Fri, 21 Feb 2025 05:40:40 GMT content-type: application/json content-length: 15 server: nginx
{"status":"ok"}
がreturnされます。 これではいけないのでしょうか?
curlコマンドのレスポンスではなく、Lightsail内にあるアクセスログは確認できますでしょうか? ヘルスチェックでアクセスが発生していればアクセスログに記録が残っているかと思います。 そのログから200で返っているかご確認ください。
ありがとうございます。 lightsailインスタンスのnginxのlogも確認しております。
172.26.33.41 - - [21/Feb/2025:14:45:35 +0900] "GET /health HTTP/1.1" 444 0 "-" "ELB-HealthChecker/2.0" 上記のようになっており、なぜか444になっております。。。
ヘルスチェックがうまく反応できていないようです。 Laravel11とNginxあたりの問題な気もするのですが、こちらからこれ以上調べるのが難しいです。 私の環境で試したのですが、普通にNginxをインストールして動かしているだけではそのようなステータスコードは返ってこなかったので何か設定に問題があるように思いました。
関連するコンテンツ
- 質問済み 1年前
- AWS公式更新しました 2年前

ありがとうございます。 lightsailのインスタンスで、SSLの設定は特にしておりません。 lightsailのインスタンスのfirewallも、ヘルスチェック用のポートは解放されております。
また、ロードバランサのSSLは正常にアタッチされていることは確認しております。