目次

SLOのコンセプト

信頼できるアプリケーションパフォーマンスのためのSLO向上

効果的なアプリケーションパフォーマンスとネットワークインフラが継続的なサービス提供と高い顧客満足度につながります。これを達成するためには、アプリケーションのKPIであるサービスレベル指標(SLI)を定義、監視、評価することが重要となります。

KPIを定義したら、サービスレベル目標(SLO)を設定して監視を行います。サービスレベル同意(SLA)はITサービスプロバイダーとユーザー間で交わされる同意です。この目標はSLOより達成しやすい水準に設定されます。

ユースケース:SLO監視による高トラフィックイベント発生時のSLA確認

Eコマースプラットフォームではフラッシュセールスのような高トラフィックイベントによりパフォーマンスで遅延が発生することがあります。サービスレベルを維持するために、アプリケーションパフォーマンス監視(APM)とネットワーク監視ツールの両方を使用し、アプリケーションとネットワークインフラの正常性を追跡しています。

SLAのコミットメントを確保するには、APMとネットワーク監視の両方で、内部SLOを設定して追跡することが重要です。

APMではチェックアウトプロセスといった重要なユーザーアクション時に遅延が発生するのを検知します。また、ネットワーク監視では、データセンター接続における大きな遅延といった問題を特定します。

監視ツールにSLOを作成し、バーンレートやエラー予算といったSLOメトリックを追跡することで、パフォーマンスのボトルネックを特定します。これにより、トラフィックピーク時にもアプリケーションの可用性とパフォーマンスを維持することに繋がり、顧客満足度をSLAに準拠するようにできます。

SLOの導入

SLOを導入するステップは次のとおりです。

  1. KPIの定義

    まず初めに、信頼性のゴールに到達するために計測する値をKPIとして定義します。KPIを定義することでSLIを設定でき、そのSLIに基づいてSLOを定めることができます。

    例として、EコマースプラットフォームのKPIには次のものが挙げられます。
    • アプリケーションの応答時間:アプリケーションがユーザーのリクエストの応答に要した時間です。
    • ネットワーク可用性:ネットワーク接続におけるアップ時間の割合です。
    KPIは計測可能な値で、会社やシステムが目標を達成するための指標になります。SLO監視では、KPIでサービスパフォーマンス、信頼性、コンプライアンスを追跡します。
  2. SLIの設定

    SLIはサービス正常性を示すKPIから取得された定量的な尺度です。

    例として、上記のKPIに対するSLIは次のものが挙げられます。
    • アプリケーション応答時間:200ミリ秒以下

    • ネットワーク可用性99.9%以上

    これらSLIはSLO追加ページで指定でき、またそこで下記の評価方法を選択できます。

    SLI計算は評価方法に基づいて行われます。

    1. 時間ベース評価
      期間でSLIを計測する方法です。指定した期間内のサービスアップ時間と応答時間を追跡します。
      SLI =(準拠していた時間 / 監視時間の合計)*  100
      上記の例場合、30日間の期間でネットワークが99.9%稼働していた必要があります。

    2. 時間枠ベース評価
      小さい間隔(1時間など)で時間を分けて、それぞれの枠でサービスパフォーマンスを評価します。指定した枠でパフォーマンスが良かった場合、成功したイベントとして枠全体がカウントされます。
      SLI = ∑ ((1つの枠で準拠していた時間 / 1つの枠の合計時間) *100)
      これにより5秒ごとのアプリケーション応答時間を評価できます。
    3. 数ベース評価
      操作(トランザクション、APIリクエスト)の数全体に対する成功した操作の割合を評価できます。

      SLI =(成功したイベント数 / 全体のイベント数)* 100
      この方法はアプリケーションの可用性の評価に使用されます。
  3. エラー予算の計算

    エラー予算はSLO違反に達するまでのダウンタイムや障害数です。

    上記の例で、EコマースプラットフォームのSLO対象が98%と設定されてい場合、アプリケーションとネットワークのこの値は2%となります。

    エラー予算 = 100% − SLO対象
    エラー予算がある場合はSLOに準拠います。またSLO違反まで残りどれだけ余裕があるかを把握できます。

    エラー予算の計算には次の時間枠が使用されます。
    • 時間枠の合計:選択した期間の全体の時間です(例:週の場合は7日間、月の場合は30日間)
    • 計算された時間枠:期間の開始から現在の日時までの経過時間です。

    今週または今月を選択した場合、時間枠の合計と計算された時間枠は同じになります。

  4. バーンレートの監視

    バーンレートはエラー予算の消費速度を表します。バーンレートが1より大きい場合、エラー予算の消費が速く、SLO違反のリスクが発生していることを表します。

    例として、期間ないで4800アプリケーションの障害が発生し、エラー予算が5000であった場合、バーンレートは次のように計算されます。
    バーンレート = 実際のエラーレート / エラー予算
    4800 / 5000 = 0.96
    バーンレート「0.96」はサービスがSLOの安全圏にあることを意味します。

    値の意味:
    バーンレート = 0:エラー予算に変更がありません
    バーンレート < 1:安全圏の範囲内でエラー予算が消費しています
    バーンレート = 1:エラー予算がすべて使い果たされた状態です
    バーンレート > 1:エラー予算が超過しSLO違反が発生する状況です
  5. エラー時間の計算

    アプリケーションやネットワークの障害が発生した場合でもエラー時間が超過していない場合、そのアプリケーションはユーザーが利用し続けられ、SLO違反は発生しません。

    SLO違反が発生していないがサービスに障害が発生している期間をエラー時間と表します。
    エラー時間 = (エラー予算 / 100) × 期間の合計
    期間の合計が7日(168時間)の例は次のとおりです。
    エラー時間 =(5 / 100) x 168 = 8.4時間
    上記はアプリケーションに障害が発生していても、8.4時間までならSO違反が発生しないことを表します。

SLOを設定することは、サービス正常性を監視しアプリケーションの信頼性維持することに繋がります。KPIを定義し、SLIを設定し、エラー予算とバーンレートを追跡することで、サービスの最適なパフォーマンスを維持できます。

これらのプラクティスにより、ユーザーに影響が及ぶ前に問題を特定し解決することで、顧客満足度の上昇に繋げられます。

関連ガイド