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

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

へルスチェックとは

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

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

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

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

原因

pingターゲットに、閲覧にログイン認証が必要なページを指定していて、ログインページにリダイレクトしていたのが原因でした。ELBのヘルスチェックではステータスコード「200」以外は異常とみなすようで、ログインページへのリダイレクトとして「302」が返っていた模様です。

対処

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