読者です 読者をやめる 読者になる 読者になる

ELBのヘルスチェックが通らなかった

AWS

ELBの設定で、インスタンスのステータスがOutOfServiceから動かないという状況に陥った際のメモです。

そもそもヘルスチェックってなに?

ロードバランサにぶら下がっているインスタンスの状態をチェックするためのものです。
正常と異常を管理者側で定義して、インスタンスが異常な状態になった時にはそのインスタンスには振り分けをしないという動作をしてくれます。

ヘルスチェックの設定項目

  • ping ターゲット
  • タイムアウト
    • ヘルスチェックから応答を受け取るまで待つ時間です。
  • 間隔
    • ヘルスチェックを行う間隔です。
  • 非正常のしきい値
    • ここで指定した数値の回数だけヘルスチェックに連続で失敗すると、異常とみなします。
  • 正常のしきい値
    • ここで指定した数値の回数だけヘルスチェックに連続で成功すると、正常とみなします。

ヘルスチェックが通らなかった

原因

pingターゲットに、ログイン認証付きのアプリケーション内のファイルを指定していて、ログインページにリダイレクトしていたのが原因でした。
ELBのヘルスチェックではステータスコード「200」以外は異常とみなすようですが、リダイレクトとして「302」が返っていました。

対処

今回の場合では、リダイレクト先が「/welcome」だったのでpingターゲットを「/welcome」に指定してあげたら「200」が返るようになり、無事InServiceになりました。