【へるすちぇっく】
ヘルスチェック とは?
最終更新:
💡 元気ですか?をサーバーに聞き続ける
サービスやサーバーの状態を、応答や実行結果などで確認する仕組み。通知・振り分け停止・再起動などに利用できるが、判定範囲と対応は種類や設定によって異なる。
📌 このページのポイント
- HTTPの応答コード・時間やコマンドの結果などで状態を確認する
- ロードバランサーは結果を振り分け判断に使う。全対象が不健康な場合などの挙動は製品ごとに確認する
- Kubernetesではliveness・readiness・startup probeを目的で使い分ける
- 依存先を含めるかは判定の目的次第。再起動で直らない外部障害をlivenessに含めないよう設計する
サーバーが落ちてるのにしばらく気づかなくて、ユーザーから問い合わせが来ちゃった…。
ただ生きてるかどうかを確認するだけ?
チェックした結果はどう使うの?
ロードバランサーの振り分けや、Kubernetesの再起動判断などに使うよ。ただし種類と設定で動きは違う。AWS ALBは全対象が不健康だと不健康な対象にも送るfail-openという例外があるんだ。
ヘルスチェックの間隔ってどのくらいが適切なの?
ヘルスチェックのエンドポイントって何を返すべきなの?
もっと詳しく知りたい人へ
200 OKならサービス全体が正常なの?
そのエンドポイントの判定条件を満たしたという意味です。DBを確認しない実装ならDB障害はわかりません。一方、外部DBの障害をliveness失敗にすると不要な再起動を招きます。利用可能性の確認と再起動の判断を分けて設計します。
まとめ:ざっくりこれだけ覚えればOK!
「ヘルスチェック」って出てきたら「サービスが正常に動いているか自動で確認する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Health Check」 = 健康診断
💬 医療の健康診断になぞらえて、システムの状態を定期的に検査することを指す