ヘルスチェック【health check】
概要

ロードバランサは複数のサーバへリクエストを分散するが、その前提として各サーバが正常に応答できる状態にあるかを継続的に確認する必要がある。ヘルスチェックによって異常なサーバが検知されると、そのサーバへのトラフィックは自動的に遮断され、正常なサーバのみに誘導される。異常が解消されたサーバを自動的に運用へ復帰させる機能を備える場合もある。
検査の手法はシステムや目的によって異なる。最も単純なものは「死活監視」(alive monitoring)で、対象が起動しているか否かだけを定期的に確認する。特定のポートへの接続を試みる方法や、WebサーバへHTTPリクエストを送信して期待する応答コードが返るかを確認する方法もある。データベースでは接続試験や簡単な問い合わせ処理を実行し、実際に利用可能な状態であるかを検査することがある。
より高度な監視では、応答の有無だけでなく、CPUやメモリの使用率、応答時間、エラーの発生状況といった性能データを計測し、異常の予兆を検知する。近年のクラウド環境やコンテナ基盤でも標準的な概念として組み込まれている。例えば、Kubernetesではコンテナの起動状態を判定する「Liveness Probe」と、処理可能状態を判定する「Readiness Probe」が用意されている。応答が得られないコンテナの自動再起動や、準備未完了のコンテナへのトラフィック遮断といった制御に活用されている。
異常を検知した際の動作もシステムによって異なり、管理者へのアラート通知や記録の保存に留まるものもあれば、対象の自動切り離しや代替インスタンスの起動といった復旧処置を自律的に実行するものもある。診断結果をダッシュボードとして統合管理画面に表示し、長期的な運用改善に役立てる仕組みを提供する製品もある。