🫧

DBの「生きてる」をどう定義する?DBREが実践するSLO/SLI設計ガイド

に公開

「データベースは正常に動いていますか?」

この問いに対して、単に「プロセスが死んでいないからOK」と答えるだけでは、現代の大規模・複雑なシステムを守るには不十分です。
システムの信頼性をエンジニアリングの手法で管理するDBRE(Database Reliability Engineering)にとって、最も重要な道具の一つがSLO(サービスレベル目標)とSLI(サービスレベル指標)です。

実践DBRE Vol.1で移行を整理し、実践DBRE Vol.2で最適化を整理した先に待っているのは、「継続的に信頼性を管理し続けるための仕組み作り」です。
本記事では、実践DBRE Vol.3の内容をベースに、データベースにおけるSLO/SLIの具体的な設計方法を解説します。


1. なぜデータベースに独自のSLOが必要なのか

アプリケーション全体のSLO(例:HTTPレスポンス 500ms以内)だけでは、データベースの「予兆」を捉えることができません。

  • アプリは正常に見えるが、DBのコネクション数が上限ギリギリである
  • 特定のバッチ処理が走り、一部の読み取りクエリだけが異常に遅延している

こうした「部分的な不健全さ」が大きなインシデントに発展する前に、データベース特有の視点で指標(SLI)を定義する必要があります。


2. DBREが選ぶべき「4つの主要SLI」

データベースの「健康状態」を定義する際、以下の4つのカテゴリから指標を選定するのが実践的です。

① 可用性(Availability)

  • 指標案: (成功したクエリ数) / (実行された全クエリ数)
  • ポイント: 単なるアップタイムではなく、アプリケーション側から見て「意図した通りに応答が返っているか」を重視します。

② レイテンシ(Latency)

  • 指標案: クエリ実行時間の p95 / p99
  • ポイント: 平均値ではなくパーセンタイルで見ることが重要です。特に「100億円キャンペーン」のようなスパイク時には、テールレイテンシの悪化がシステム全体の死を招きます。

③ スループット(Throughput)

  • 指標案: 秒間クエリ数 (QPS) / 秒間書き込みデータ量
  • ポイント: 現在の負荷が、Vol.2で設計したスケーラビリティの限界に対してどの位置にあるかを可視化します。

④ 飽和度(Saturation)

  • 指標案: CPU利用率 / コネクション使用率 / ディスクI/O待ち
  • ポイント: 「あとどれくらいでリソースが尽きるか」を測ります。これは将来のキャパシティプランニングに直結します。

3. 開発チームとの「責任共有モデル」とエラー予算

SLOを定義する真の目的は、「開発速度(Velocity)」と「信頼性(Reliability)」のトレードオフを組織的に解決することにあります。

ここで重要になるのがエラー予算(Error Budget)という考え方です。

  • SLOが守られている間: 開発チームは自由に新機能をリリースできる。
  • エラー予算を使い果たした場合: リリースを一時停止し、DBREと開発チームが協力して「信頼性向上(バグ修正やパフォーマンス改善)」にリソースを集中させる。

この「ルール」をあらかじめ合意しておくことで、インシデントが発生した際に「誰の責任か」を押し付け合うのではなく、共通の指標(SLO)に基づいて建設的な意思決定ができるようになります。


4. インシデント対応とポストモーテム(事後分析)

どれだけ完璧なSLOを設計しても、障害はゼロにはなりません。DBREの価値は、障害後にどう振る舞うかで決まります。

  • Blameless Post-mortem(非難のない事後分析): 人を責めるのではなく、プロセスの欠陥を探ります。
  • RCA(根本原因分析): 「なぜDBが止まったか」だけでなく、「なぜ監視が検知できなかったか」「なぜ復旧に時間がかかったか」まで深掘りします。

このプロセスを通じて得られた知見をSLO/SLIの再設計にフィードバックする。このサイクルこそが、チームとしての「運用の信頼性」を育てます。


結論:指標は「対話」のための道具である

SLO/SLIは、ただのグラフではありません。エンジニアリングチームとビジネスサイド、あるいは開発者とDBREが、「今、何に投資すべきか」を正しく判断するための共通言語です。

まずはスモールステップで、今のDBの「健康」を定義することから始めてみませんか。


大規模プロジェクトのリーダー・マネージャーの皆様へ

私の著書『実践DBRE(Database Reliability Engineering)vol.3』では、本記事で触れたSLO/SLIの具体的な計算式や、開発チームとの調整で役立つコミュニケーション術、さらにはセキュアなデータ管理の実践方法まで、組織として信頼性を高めるための「人とプロセス」のノウハウを網羅しています。

技術だけでなく、チームの力で最高の信頼性を築きたい方は、ぜひ本編をチェックしてみてください。

実践DBRE Vol.3 運用の信頼性向上とチームビルディング

GitHubで編集を提案

Discussion