👏

「入門 監視」で学んだこと(healthエンドポイントパターン)

に公開

初めまして、tatsuyaです。
普段はSESでバックエンドエンジニアとして働いています!

今回は職場の勉強会で輪読した「入門 監視」という書籍について学んだことを書こうと思います。

運用や監視に対しての知識がほとんど無い状態で読んだので、チンプンカンプンな箇所が多かったのですが、その中でも理解しやすくて、すぐに取り入れれそうだったのが「Healthエンドポイントパターン」についてでした。

Healthエンドポイントパターンとは

  • アプリケーションの健全性を伝えるHTTPエンドポイント
  • 正常の場合はステータスコード200を返す
  • 下記のようなアプリケーションについての基本的な情報を含む場合もある
    • デプロイされたバージョン
    • 依存性のステータス
  • カナリアエンドポイントやステータスエンドポイントと呼ばれることもある
  • シンプルにHTTPリクエストに対してレスポンスを返すだけか、DB接続やRedisといった外部サービスとの接続ステータスを返す場合もある

メトリクスベース(CPUやメモリの使用率等)との違い

  • ELBによるヘルスチェックに使える
  • デバッグに便利である。エンドポイントでデプロイされたバージョンを公開すると、アプリケーション内で何が動いているかを簡単に判断出来る
  • メトリクスベースのみの監視だと、例えばCPUの稼働率が高くなっていることと、アプリケーションが正常に動作しているかは別の話である
  • メトリクスベースでの監視と併用してアプリケーションの正常性を監視することが大切

導入方法

  1. 監視したい項目(DBやRedis等)への接続確認処理をするエンドポイントを作成
  2. ALBやCloudWatch,Datadogといったサービスを使って定期的に作成したエンドポイントにHTTPリクエストを実行する
  3. レスポンスが200以外の場合はSlackとかにアラート通知を行う

まとめ

Healthエンドポイントパターンは、運用監視の最初の一歩として取り入れやすく効果的な方法だと感じました。
SREエンジニアやインフラエンジニアがいないようなチームでも簡単に導入が出来るので是非試してみてください。

Discussion