Skip to content
Latchkey

SLAとは?サービスレベルアグリーメントを解説

SLA、すなわちService Level Agreementとは、提供者とその顧客の間で交わされる、提供されるサービスの水準に関する正式な約束であり、それが守られなかった場合には多くの場合に結果が伴います。

SLAは、信頼性がビジネス契約と出会う場所です。SLAは、あなたが約束するサービスに数値を、一般的にはuptimeの割合を与え、それに説明責任を結び付けます。SLAを理解することは、関連する概念であるSLOとSLIを理解することを意味し、これらが合わさって信頼性の約束を語る語彙を形づくります。

SLAが約束するもの

SLAは、保証されたuptimeの割合や最大応答時間といった測定可能な目標を規定し、通常はそれらの目標が満たされなかった場合の、サービスクレジットのような救済策を定義します。それは外部への、多くの場合契約に基づく約束であり、それこそが純粋に内部的な目標との違いです。

SLA、SLO、SLI

  • SLI、すなわちService Level Indicatorは、実際に測定される指標です。たとえば成功したリクエストの割合です。
  • SLO、すなわちService Level Objectiveは、その指標に対する内部目標です。たとえば99.9パーセントの成功率です。
  • SLA、すなわちService Level Agreementは、外部への約束です。通常はSLOよりも一段緩く設定され、安全マージンを残します。

エラーバジェットの役割

完璧とあなたのSLOの間の差がエラーバジェットです。つまり、費やしてよい信頼性の欠如の量です。エラーバジェットは信頼性を管理できる量に変え、そしてrelease判断に直接結び付きます。リスクを取って出荷することはバジェットを消費するからです。

SLAはどう測定されるか

SLAを満たすには、それを裏付ける監視が必要です。uptimeのチェック、成功率のメトリクス、そして合意された期間にわたるレイテンシの測定が、遵守を証明するものです。信頼できるオブザーバビリティがなければ、SLAは誰も検証できない単なる約束にすぎません。

SLA、deploy、そしてCI/CD

deployは信頼性が最も危険にさらされる瞬間なので、SLAを意識するチームはreleaseをhealth checkでゲートし、影響範囲を限定するためにプログレッシブなrolloutを使います。エラーバジェットがほぼ使い切られると、チームはリスクの高いdeployをしばしば減速させ、SLAをデリバリー判断への直接的な入力とします。

重要なポイント

  • SLAは、多くの場合契約に基づく、正式なサービスの約束です。
  • SLIは測定される指標、SLOは内部目標、SLAは外部への約束です。
  • エラーバジェットは許容される信頼性の欠如を定量化します。
  • SLAは、チームがどれだけ慎重にdeployするかに影響します。

関連ガイド