Deep Healthcheckについて

Deep Healthcheckパターンとは、こちらで紹介されている クラウドアーキテクチャのデザインパターンである。

一般的にELBを使ったヘルスチェックでは、HTTPステータスコード200を返すだけの小さな処理のみを行うエンドポイントを用意するのが定石だ。 しかし、これのデメリットは、後ろにあるDBサーバへの接続確認ができないことである。 これを解決するために、単に200を返すのではなく、そのエンドポイントの処理の中でDB接続を発行し、 DB接続観点でのヘルスチェックも一緒に見てしまう、というのが Deep Healthcheck パターンだと理解している。

このパターンを採用するメリットは言うまでもなく、DBにもし繋げなければ5xxを返すなどすることで、DB接続失敗時にもヘルスチェック失敗にすることができることだ。

しかし、以下のようなデメリットを抱えている。それは、ヘルスチェック自体が負荷になる可能性があることだ。 ELBはデフォルトでヘルスチェックを15秒ごとに実行するので、15秒ごとに両系のサーバからDBへのコネクションが張られることになる。 これが負荷にならないかはよくテストする必要がある。