0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第4回:Application SignalsでSLO監視を試してみる

Posted at

ゴール

前回までにSAMを用いて構築したサンプルアプリ&Application Signalsを用いて
SLO監視を試してみます。
https://qiita.com/ColorfulWorld/items/5fabebf0d2de4f77605f

SLI / SLO / SLAとは

用語解説

SLI(Service Level Indicator)

サービスレベル指標=何を測るか?
サービス品質を測る指標そのものです。

例:

  • 成功率 99.9%
  • レイテンシ p95
  • エラー率 0.1%

などです。

SLO(Service Level Objective)

サービスレベル目標=どこまで目指すか?
SLIに対して「どこまでを目標にするか」を期間付きで定義します。

例:

  • 直近28日で成功率99.9%
  • p95レイテンシ300ms以内を99%

などです。

SLA(Service Level Agreement)

サービス品質保証(の合意)=顧客との約束事項。守れなかったらどうするか?
顧客との契約上、達成すべきサービスの品質を取り決めたものです。
未達時の救済(返金/クレジット)や除外条件を含む法的・商用ドキュメントを指します。

エラーバジェット(Error Budget)

SLOを満たしつつ、どこまで失敗して良いかを数値化した残量(許容量)です。

バーンレート(Burn Rate)

エラーバジェットをどれだけの速さで消費しているかを表す指標です。

  • 1より小さい場合、予算内で推移。
  • 1なら予算通り
  • 1より大きい場合、予算より早く消費。このままだと期間内に枯渇。

例示

サービスが正常に稼働する率を99.9%とした場合は、下記のとおりになります。

SLI

HTTPリクエストに対し、ステータスコード200をレスポンスする率(成功率)が99.9%

SLO

直近30日間の成功率が99.9%以上。

SLA

暦月の成功率が99.9%を下回ったら、料金の10%を返金。

運用上、直近30日ローリング(評価時点から常に30日遡った期間)の成功率が99.9%であることを監視します。
契約・報告上は暦月で集計・判定します。

エラーバジェット

成功率99.9%の場合、エラー率0.1%がバジェット。

バーンレート

SLO=99.9%(エラーバジェット=0.1%)で、直近のエラー率=2%なら

バーンレート = 0.02 ÷ 0.001 = 20。

SLOが 暦月(30日)で99.9%なら
約1.5日(=30÷20)で予算が尽きるペース。

Application Signalsによる設定

前回までに作成したサンプルアプリケーションにSLOを設定してみます。

CloudWatchのコンソールで[Application Signals]-[サービス]を開くと、
自動で検知されたサービスが一覧で表示されます。
スクリーンショット 2025-11-02 8.58.27.png

この中から[sam-test-stack-Enqueue]の[SLOを作成]をクリックすると、
[サービスレベル目標(SLO)を作成]画面が表示されます。

まず、サービスレベル指標(SLI)を設定します。
例では、「sam-test-stack-Enqueue/FunctionHandlerリクエストは、5XX障害のないレスポンスがあれば、良好かつ正常であるとみなされます。」となりました。
スクリーンショット 2025-11-02 11.22.11.png

次にサービスレベル目標(SLO)を設定します。
例では30日ローリングで達成目標を99.9%に設定しました。
合わせて、バーンレートを設定します。例ではルックバックウィンドウ(現在からどれくらい遡った期間を評価するか)に60分を指定しました。
スクリーンショット 2025-11-02 11.25.49.png

バーンレートとSLOにアラームを設定することができます。
スクリーンショット 2025-11-02 11.37.54.png

SLOが作成できました。SLIステータス、達成度、エラーバジェットなどが確認できます。
スクリーンショット 2025-11-02 11.40.13.png

おわりに

CloudWatchでは、ログのフィルタリング、カスタムメトリクスを駆使して、ダッシュボードやアラームを作成して監視していましたが、 ApplicationSignalsでは非常に簡単にそれらを実現することができ、かつ詳細なトレースまで実施することができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?