SLI / SLO / SLA
サービスレベルの定義と管理
概念の違い
SLI(Service Level Indicator)
サービス品質を測定する指標
例: リクエストの99%が200ms以内に応答
SLO(Service Level Objective)
SLIに対する目標値(内部目標)
例: 可用性99.9%を目標とする
SLA(Service Level Agreement)
顧客との契約。違反時のペナルティあり
例: 99.9%を下回った場合、サービス料金を返金
一般的なSLI
| カテゴリ | SLI | 計算方法 |
|---|---|---|
| 可用性 | Availability | 成功リクエスト / 全リクエスト × 100 |
| レイテンシ | Latency | 200ms以内のリクエスト / 全リクエスト |
| スループット | Throughput | 1秒あたりの処理リクエスト数 |
| エラー率 | Error Rate | エラー数 / 全リクエスト × 100 |
9の数とダウンタイム
| 可用性 | 年間ダウンタイム | 月間ダウンタイム |
|---|---|---|
| 99%(Two 9s) | 3.65日 | 7.3時間 |
| 99.9%(Three 9s) | 8.76時間 | 43.8分 |
| 99.99%(Four 9s) | 52.6分 | 4.38分 |
| 99.999%(Five 9s) | 5.26分 | 26秒 |
エラーバジェット
エラーバジェット = 許容される障害の量(100% - SLO)
SLO: 99.9%
→ エラーバジェット: 0.1%
月間約43分の障害が許容
バジェット消費時
→ 新機能リリース停止
信頼性改善に注力
SLO設定のポイント
ユーザー視点で設定
内部メトリクスではなく、ユーザー体験に基づく
測定可能で具体的に
曖昧な「速い」ではなく「p99 < 200ms」
SLAより厳しく設定
SLO違反時にSLA違反を防ぐバッファ
定期的に見直し
ビジネス要件やユーザー期待の変化に対応