エラーバジェット
SLO で許容される障害の量を予算として管理し、信頼性と開発速度のバランスを取る仕組み
SRE運用
エラーバジェットとは
エラーバジェット (Error Budget) は、SLO (Service Level Objective) で許容される障害の量を予算として管理し、信頼性と開発速度のバランスを取る仕組みである。Google SRE が提唱。
計算方法
SLO: 99.9% の可用性
エラーバジェット = 100% - 99.9% = 0.1%
月間 (30日) のエラーバジェット:
30日 × 24時間 × 60分 × 0.1% = 43.2 分
→ 月に 43 分までのダウンタイムが許容される
SLO とエラーバジェットの関係
| SLO | エラーバジェット (月間) |
|---|---|
| 99% | 7.2 時間 |
| 99.9% | 43 分 |
| 99.95% | 22 分 |
| 99.99% | 4.3 分 |
エラーバジェットの使い方
エラーバジェットが残っている:
→ 新機能のリリースを積極的に進める
→ リスクのある変更も許容
→ 実験的なデプロイを実施
エラーバジェットを消費した:
→ 新機能のリリースを凍結
→ 信頼性改善に注力
→ 自動テスト、モニタリングの強化
エラーバジェットポリシー
| バジェット残量 | アクション |
|---|---|
| > 50% | 通常の開発速度 |
| 25〜50% | リスクの高い変更を控える |
| < 25% | 信頼性改善を優先 |
| 0% | 機能リリースを凍結 |
エラーバジェットのメリット
「リリースすべきか」を数値で客観的に判断でき、開発チームと運用チームの対立を共通の指標で解消する。99.999% の可用性が本当に必要かを問い直すことで過剰な信頼性投資を防止し、バジェットに余裕がある間は積極的にリスクテイクできる。
100% の可用性を目指さない理由
- エラーバジェットが 0 → 一切の変更ができない
- ユーザーの体験は ISP、デバイス、ネットワークにも依存
- 99.99% と 99.999% の差はユーザーにはほぼ分からない
- コストが指数関数的に増加する
エラーバジェットを扱う関連書籍も多い。