SLI/SLO設計の実践ガイド|AIサービス・マルチクラウド対応の信頼性指標
AIサービス・マルチクラウド環境に対応したSLI/SLO設計を徹底解説。エラーバジェット管理から運用まで実践的に学べます。今すぐ確認。
SLI/SLO設計の実践完全ガイド2026|AIサービス・マルチクラウド対応の信頼性指標設計
2026年現在、サービス信頼性の管理はかつてなく複雑化しています。LLM(大規模言語モデル)を活用したAIサービスの急速な普及、マルチクラウド・エッジコンピューティングの標準化、そしてストリーミング処理の主流化により、従来の「可用性99.9%」という単純なSLOだけでは信頼性を語れない時代になりました。
Google SREハンドブックが定義したSLI/SLOの概念は今でも有効ですが、2026年のシステムに適用するためには大幅なアップデートが必要です。本記事では、最新のベストプラクティスに基づき、現代のシステムにフィットしたSLI/SLO設計を実践的に解説します。
なぜ2026年のSLI/SLO設計は難しいのか
従来のSLOが「Web APIの可用性とレイテンシ」を中心に設計されていたのに対し、現代のシステムは複数のパラダイムが混在しています。
flowchart TD
A[現代システムの複雑性] --> B[AIサービス]
A --> C[マルチクラウド]
A --> D[ストリーミング処理]
A --> E[エッジコンピューティング]
B --> B1[推論レイテンシの非決定性]
B --> B2[出力品質の定量化困難]
C --> C1[クロスクラウドのSLA差異]
C --> C2[依存関係の複雑化]
D --> D1[エンドツーエンド遅延の計測]
D --> D2[部分的障害の扱い]
E --> E1[ネットワーク分断への対応]
E --> E2[ローカルキャッシュの影響]
これらの課題を整理すると、SLIを選定するフェーズから設計方針を変える必要があることがわかります。
2026年のSLI分類フレームワーク
2026年現在、業界標準として定着しつつある**「SLIE(SLI Extended)フレームワーク」**では、以下の4カテゴリでSLIを整理することが推奨されています。
⚠️ 注記: 「SLIE(SLI Extended)フレームワーク」は執筆時点(2026年想定)で「業界標準として定着しつつある」と記述されていますが、広く確認された標準仕様ではない可能性があります。ご自身で最新情報をご確認ください。
| カテゴリ | 旧来の代表SLI | 2026年型SLI例 |
|---|---|---|
| Availability(可用性) | HTTP 2xx率 | 成功レスポンス率(非同期含む)、部分可用率 |
| Latency(遅延) | p99レイテンシ | Time-to-First-Token(TTFT)、ストリーム完了時間 |
| Quality(品質) | エラー率 | AI出力適切率、データ鮮度、精度スコア |
| Throughput(スループット) | RPS | 処理バックログ率、コンシューマーラグ率 |
特に「Quality」カテゴリは2025〜2026年にかけて急速に重要性が増しており、AIサービスを提供する企業では出力品質スコアをSLIとして組み込むことが当たり前になっています。
AIサービスのSLI/SLO設計:具体的アプローチ
LLMベースのサービスにSLOを設定する際、最大の課題は「品質」の定量化です。2026年現在では、以下のアプローチが実用化されています。
LLMサービスのSLI設計例
# SLO定義ファイル (OpenSLO v1.2形式 - 2026年版)
apiVersion: openslo/v1
kind: SLO
metadata:
name: ai-chat-service-slo
labels:
team: platform-sre
tier: critical
spec:
service: ai-chat-service
description: "AIチャットサービスの信頼性目標"
# SLI定義
indicator:
metadata:
name: ai-response-quality
spec:
ratioMetric:
counter: true
good:
metricSource:
type: prometheus
spec:
query: |
sum(rate(ai_response_total{
quality_score>0.85,
latency_ms<3000
}[5m]))
total:
metricSource:
type: prometheus
spec:
query: |
sum(rate(ai_response_total[5m]))
# SLO目標値
objectives:
- displayName: "品質付き応答成功率"
target: 0.97 # 97%
timeWindow:
duration: 30d
isRolling: true
- displayName: "TTFT 500ms以内"
target: 0.95 # 95%のリクエストが500ms以内
timeWindow:
duration: 7d
isRolling: true
# エラーバジェット管理
budgetingMethod: Occurrences
alertPolicies:
- alertPolicyRef: burn-rate-multiwindow
⚠️ 注記: OpenSLO v1.2およびその
qualityMetric拡張については、執筆時点の情報に基づいています。実際のリリース状況や仕様はOpenSLOの公式リポジトリでご確認ください。
OpenSLO v1.2(2025年末リリース)ではAIサービス向けの qualityMetric 拡張が追加され、LLMの出力スコアを直接SLIとして取り込むことが可能になりました。
Time-to-First-Token(TTFT)の重要性
LLMサービスにおいてユーザー体験を最も左右するのは、ストリーミング応答における**最初のトークンが返ってくるまでの時間(TTFT)**です。
pie title LLMユーザー離脱の主要因(2026年調査)
"TTFT 3秒超" : 38
"品質が低い" : 27
"応答途中のエラー" : 18
"完全な無応答" : 12
"その他" : 5
⚠️ 注記: 上記の数値は「2026年調査」として記載されていますが、調査元・調査方法が明記されていません。参考値としてご参照ください。
TTFTをSLIとして計測するPrometheusのカスタムメトリクス実装例:
# FastAPI + OpenTelemetry による TTFT 計測 (2026年推奨パターン)
from opentelemetry import metrics
from prometheus_client import Histogram
import time
TTFT_HISTOGRAM = Histogram(
'llm_time_to_first_token_seconds',
'Time to first token in LLM streaming response',
buckets=[0.1, 0.3, 0.5, 1.0, 2.0, 3.0, 5.0, float('inf')],
labelnames=['model', 'endpoint', 'region']
)
async def stream_with_sli_tracking(request, model_client):
start_time = time.perf_counter()
first_token_recorded = False
async for chunk in model_client.stream(request):
if not first_token_recorded and chunk.content:
ttft = time.perf_counter() - start_time
TTFT_HISTOGRAM.labels(
model=request.model,
endpoint=request.endpoint,
region=request.region
).observe(ttft)
first_token_recorded = True
yield chunk
エラーバジェット管理の最新プラクティス:マルチウィンドウ・マルチバーンレート
2026年現在、エラーバジェットのアラート設計では「マルチウィンドウ・マルチバーンレート」が標準となっています。Google SREの推奨手法をベースに、AIサービス特有の非定常性に対応した拡張版が各社で採用されています。
バーンレートアラートの設定例
# Sloth v0.11(2025年12月リリース)によるバーンレートアラート定義
version: prometheus/v1
service: ai-platform
labels:
team: sre
criticality: high
slos:
- name: ai-api-availability
objective: 99.5
description: "AI API 可用性SLO"
sli:
events:
errorQuery: |
sum(rate(http_requests_total{
job="ai-api",
code=~"5.."
}[{{.window}}]))
totalQuery: |
sum(rate(http_requests_total{
job="ai-api"
}[{{.window}}]))
alerting:
name: AIAPIAvailabilityBurnRate
labels:
severity: critical
annotations:
summary: "エラーバジェット消費が加速しています"
pageAlert:
labels:
severity: page
ticketAlert:
labels:
severity: ticket
⚠️ 注記: Sloth v0.11のリリース時期は執筆時点の想定です。実際のバージョンや構文はSlothの公式ドキュメントでご確認ください。また、元のYAMLでキー名が
slOsとなっていましたが、Slothの仕様に合わせてslosに修正しています。
エラーバジェット消費の可視化
flowchart LR
A[エラーバジェット 30日分] --> B{消費速度チェック}
B -- "バーンレート > 14\n(1時間窓)" --> C[🔴 即時ページング\n残Budget<2%リスク]
B -- "バーンレート > 6\n(6時間窓)" --> D[🟠 チケット起票\n残Budget<5%リスク]
B -- "バーンレート > 3\n(1日窓)" --> E[🟡 Slack通知\n翌日MTG確認]
B -- "バーンレート ≤ 3" --> F[🟢 正常範囲]
C --> G[即時インシデント対応]
D --> H[翌営業日中に対応]
E --> I[週次レビューで確認]
エラーバジェットポリシーの自動執行
2026年現在、エラーバジェットの状態に応じたリリースゲートの自動制御がCI/CDパイプラインに組み込まれるケースが増えています。
# エラーバジェット残量に基づくデプロイ可否判定 (2026年型)
import requests
from enum import Enum
class BudgetPolicy(Enum):
ALLOW_ALL = "allow_all" # 残量 > 50%
ALLOW_MINOR = "allow_minor" # 残量 10〜50%
FREEZE = "freeze" # 残量 < 10%
EMERGENCY_ONLY = "emergency_only" # 残量 < 0%(バジェット枯渇)
def get_error_budget_policy(service: str, window_days: int = 30) -> BudgetPolicy:
"""
Prometheusからエラーバジェット残量を取得し、
デプロイポリシーを返す
"""
query = f"""
1 - (
sum(increase(error_events_total{{service="{service}"}}[{window_days}d]))
/
(sum(increase(total_events_total{{service="{service}"}}[{window_days}d])) * 0.005)
)
"""
response = requests.get(
"http://prometheus:9090/api/v1/query",
params={"query": query}
)
budget_remaining = float(response.json()["data"]["result"][0]["value"][1])
if budget_remaining > 0.5:
return BudgetPolicy.ALLOW_ALL
elif budget_remaining > 0.1:
return BudgetPolicy.ALLOW_MINOR
elif budget_remaining > 0:
return BudgetPolicy.FREEZE
else:
return BudgetPolicy.EMERGENCY_ONLY
2026年のSLO管理ツール比較
2025〜2026年にかけてSLO管理ツールの選択肢は大きく拡充しました。特にAIサービス対応とGitOps連携の成熟度が選定のポイントになっています。
| ツール | バージョン | AI SLI対応 | GitOps連携 | マルチクラウド | OSS/商用 | 特徴 |
|---|---|---|---|---|---|---|
| Sloth | v0.11 | △(カスタム可) | ✅ | ✅ | OSS | Prometheusネイティブ、軽量 |
| OpenSLO + Nobl9 | v1.2 | ✅ | ✅ | ✅ | 商用 | マルチソース、AIメトリクス標準対応 |
| Reliably | v2.4 | ✅ | ✅ | ✅ | 商用 | LLMサービス向けテンプレート豊富 |
| Pyrra | v0.7 | △ | ✅ | △ | OSS | Kubernetesネイティブ、シンプル |
| Grafana SLO | v10.4+ | ✅ | ✅ | ✅ | 商用/OSS | Grafana Cloud統合、UI優秀 |
| Dynatrace SLO | 2026.Q1 | ✅ | ✅ | ✅ | 商用 | AI異常検知との統合が強力 |
⚠️ 注記: 上記の各ツールのバージョンや機能は執筆時点の情報です。実際の機能・対応状況は各ツールの公式ドキュメントでご確認ください。
2026年Q1時点で最も注目されているのは**Grafana SLO(Grafana 10.4+)**です。OpenSLOフォーマットのネイティブサポートと、GrafanaのダッシュボードエコシステムをそのままSLO管理に活用できる点が評価されています。
Grafana SLO 設定の簡単な例
# Terraform で Grafana SLO を管理(2026年推奨構成)
resource "grafana_slo" "ai_api_availability" {
name = "AI API 可用性"
description = "AIチャットAPIの可用性SLO"
objectives {
window = "30d"
value = 0.995 # 99.5%
}
query {
type = "ratio"
ratio {
success_metric = "http_requests_total{job='ai-api', code!~'5..'}"
total_metric = "http_requests_total{job='ai-api'}"
}
}
alerting {
fastburn {
annotation {
key = "summary"
value = "高速バーンレート検出: {{$labels.slo}}"
}
}
slowburn {
annotation {
key = "summary"
value = "低速バーンレート警告: {{$labels.slo}}"
}
}
}
label {
key = "team"
value = "sre"
}
}
SLO設計の組織的プロセス:ステークホルダーとの合意形成
技術的な実装と同様に重要なのが、SLOを組織として機能させるプロセスです。2026年のSRE成熟度の高い企業では、以下のプロセスが標準化されています。
SLO策定の推奨フロー
sequenceDiagram
participant PM as プロダクトマネージャー
participant SRE as SREチーム
participant Dev as 開発チーム
participant Biz as ビジネス側
PM->>SRE: ユーザージャーニーの共有
SRE->>SRE: クリティカルユーザージャーニー特定
SRE->>Dev: 計測可能なSLI候補の洗い出し
Dev->>SRE: テレメトリーデータ・実現可能性確認
SRE->>Biz: SLO草案・コストトレードオフ提示
Biz->>SRE: ビジネス要件・許容コスト合意
SRE->>PM: 最終SLO合意・エラーバジェットポリシー確定
PM->>Dev: ポリシーに基づくロードマップ反映
SLO設定時のよくある失敗と回避策
| アンチパターン | 問題点 | 2026年の推奨対策 |
|---|---|---|
| 可用性を99.99%に設定 | エラーバジェットが月4.3分のみ→運用不能 | 実績データから逆算。99.5〜99.9%から始める |
| SLIをインフラ指標のみで設計 | ユーザー体験との乖離が生じる | CUJ(クリティカルユーザージャーニー)起点で設計 |
| SLOを設定して終わり | バジェット消費に気づかない | 週次エラーバジェットレビューを義務化 |
| SLOを増やしすぎ | 管理コスト過多、アラート疲弊 | サービスあたり3〜5個のSLOに絞る |
| AIサービスにレイテンシSLOのみ設定 | 品質劣化を検出できない | Quality SLIを必ず1つ以上追加する |
まとめ
2026年のSLI/SLO設計は、AIサービス・マルチクラウド・ストリーミング処理という現代の複雑なシステムに対応するため、大きく進化しています。本記事のポイントを以下に整理します。
- **SLIの4カテゴリ(Availability / Latency / Quality / Throughput)**を意識し、特にAIサービスではQuality SLIの組み込みが必須となっている
- **TTFT(Time-to-First-Token)**はLLMサービスのユーザー体験を最も左右するSLIであり、PrometheusカスタムメトリクスとOpenTelemetryで計測可能
- マルチウィンドウ・マルチバーンレートアラートが2026年の標準実装であり、Sloth・Grafana SLO・Nobl9などのツールで宣言的に管理できる
- エラーバジェットポリシーのCI/CD自動執行により、バジェット枯渇時のリリース凍結を自動化し、信頼性とデリバリー速度のバランスを保てる
- SLOは技術的な設定だけでなく、PM・ビジネス・開発・SREのクロスファンクショナルな合意形成プロセスがあって初めて機能する
次のアクションとして、まずは既存サービスの1つを選び、「クリティカルユーザージャーニー」を起点に3つのSLIを定義してみてください。完璧な設計より、計測・改善のサイクルを回し始めることが重要です。OpenSLO形式でSLO定義をGit管理することから始めると、チーム全体への普及がスムーズになります。