質問: お世話になります。 ロードバランサー(LB)のヘルスチェックの方法について、皆さんの経験談・御意見を教えていただければと思います。 ■システム構成 インターネット<->LB<->WEBサーバ(冗長化)+PHP<->DBサーバ 上記のWEB、DBを分離したLAMPのシステム構成だった場合、LBからWEBサーバに対しヘルスチェックを行う事があると思います。 また、障害などで特定のWEBサーバが正常に動作しなくなった場合、ヘルスチェック失敗を検知し、異常なWEBサーバを切り離して残ったWEBサーバのみでサービス継続を行うと思います。 その際に、LBからのヘルスチェックを行う対象はどこまでチェックを行っているものなのでしょうか? 私で考えられるチェックのパターンは以下の3つです。 1)WEBサーバ上に配置してあるHTMLファイルをチェックして正常にレスポンスがあること ⇒WEBサーバが動作している事を確認できるが、PHP・DBサーバが動作しているかは確認できない。 2)WEBサーバ上に配置してあるPHPファイルをチェックして正常にレスポンスがあること ⇒WEBサーバとPHPが動作している事を確認できるが、DBサーバが動作しているかは確認できない。 3)WEBサーバ上に配置してあるDBから特定のデータを取得するPHPファイル(WEBサーバとPHP、DBサーバが動作している事を確認できる) ⇒WEBサーバとPHP、DBサーバが動作している事、WEBサーバ・DBサーバ間のNWの正常動作を確認できる。 方法を上記で考えた場合、3番のチェック方法がDBサーバまでの動作が確認できるのでシステムの正常稼働チェックには一番良いと思うのですが、その場合に問題が発生した等の経験談も教えていただければと思います。 また、他に実践されているヘルスチェック方法等あれば教えていただければ幸いです。
回答: Webサーバーには静的なページもあるでしょうから、ヘルスチェックの本来の目的である「負荷分散対象の死活を監視して、振り分け先を有効/無効にする」という観点で言えば、ロードバランサーのヘルスチェックは 1) とし、別途、監視サーバーで 3) を見るといいと思います。 監視サーバーがないのであれば、3) は 1) を兼ねるとみなして、ロードバランサーのヘルスチェックを 3) のみにすることもアリだと思います。