【えすえるおー】

SLO(サービスレベル目標) とは?

最終更新:
💡 テストで何点以上取るか決める、サービスの合格ライン

サービスの信頼性について設定する具体的な目標値。「月間の稼働率99.9%以上」「リクエストの99%が200ms以内」のように、SLIで測った値が満たすべき範囲を定める。

📌 このページのポイント
SLO: サービスの信頼性目標とエラーバジェット 稼働率 時間 → 100% 99.9% ← SLO ↑ 100%とSLOの間 = エラーバジェット(許される失敗の量) 実績がSLOを下回らない範囲で、リリースなどの変更に使える ← 実績(SLI) SLI で実測 → SLO と比較 → 判定
SLIの実測値をSLO目標と比較し、エラーバジェットを管理する
ひよこ ひよこ
SLOって何のための目標なの?
ペンギン先生 ペンギン先生
サービスがどのくらい安定して動いているべきかを数字で決めるものだよ。たとえば「月間の稼働率99.9%以上」とか「リクエストの99%が200ms以内に返る」みたいに設定するんだ
ひよこ ひよこ
100%を目標にすればいいんじゃないの?
ペンギン先生 ペンギン先生
GoogleのSRE本では、100%は目標として適切でないと説明しているよ。信頼性を1桁上げるごとにコストは大きく増えるし、利用者の側でもネットワークや端末の不調があるから、99.99%と99.999%の違いはほとんど感じられないことが多いんだ。しかも100%を目指すと、新しい機能のリリースのような変更がしにくくなるよ
ひよこ ひよこ
SLOを下回りそうになったらどうなるの?
ペンギン先生 ペンギン先生
エラーバジェットという考え方があってね。SLOが99.9%なら、残りの0.1%を「使ってよい失敗の予算」として扱うんだ。SRE本では、予算が残っている間は新しいリリースを進めてよく、使い切ったらリリースを止めて信頼性の改善に集中する運用が紹介されているよ
ひよこ ひよこ
SLOとSLAって違うの?
ペンギン先生 ペンギン先生
SLAは利用者との約束で、守れなかったときの返金などの結果を伴うもの。SLOはその結果を伴わない目標なんだ。SRE本では、外に約束する水準より内部の目標を厳しくしておくと、利用者に影響が出る前に問題へ対処する余裕が持てると説明しているよ
ひよこ ひよこ
SLOはどうやって決めればいいの?
ペンギン先生 ペンギン先生
今測れる値から決めるのではなく、利用者が何を気にするかを考えて、そこからSLIとSLOを決めるのがSRE本の勧める順番だよ。平均ではなく99パーセンタイルのような分布の値を使うと、一部の利用者が困っている状態も見逃しにくくなるね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
SLOって出てきたら「サービスの信頼性の合格ラインを数字で決めたもの」と思えればだいたいOK!
📖 おまけ:英語の意味
「Service Level Objective」 = サービスレベル目標
💬 Objectiveは「目標」という意味で、サービスが達成すべき信頼性のターゲットを表しているよ

参考資料

← 用語集にもどる