[アップデート] Amazon CloudWatch Application Signalsに推奨SLO / サービスレベルSLO / パフォーマンスレポート機能が追加されました

[アップデート] Amazon CloudWatch Application Signalsに推奨SLO / サービスレベルSLO / パフォーマンスレポート機能が追加されました

推奨SLOをベースに考えるのもあり
2026.03.31

推奨されるSLOを提案して欲しい

こんにちは、のんピ(@non____97)です。

皆さんは推奨されるSLOを提案して欲しいと思ったことはありますか? 私はあります。

SLOの設定は厳しすぎるとエラーバジェットがすぐに枯渇し、緩すぎるとサービスの状態悪化を見落としてしまいます。

今回アップデートにより、以下3つの機能が追加されました。

  • 推奨SLO
  • サービスレベルのSLO
  • SLOパフォーマンスレポート

https://aws.amazon.com/jp/about-aws/whats-new/2026/03/cloudwatch-application-signals-adds-slo-capabilities/

推奨SLOは過去30日間のメトリクス(P99レイテンシーとエラーレート)を分析して、適切なSLOを提示してくれます。

サービスレベルのSLOは従来依存関係やオペレーション単位でSLOを設定していたところ、すべてのオペレーションひっくるめたSLOを定義することが可能です。要するにサービス全体の健全性を評価することが可能です。

SLOパフォーマンスレポートはローリングウィンドウやカレンダーウィンドウでSLOの達成状況を振り返れる機能です。

実際に確認してみました。

やってみた

検証環境

検証環境は以下のとおりです。

AWS Distro for OpenTelemetry (ADOT) Collector と ADOT SDKをとでCloudWatch Application Signalsを使ってみた.png

以下記事のものをベースにしています。

https://dev.classmethod.jp/articles/cloudwatch-application-signals-with-adot-collector-and-sdk/

ログはAWS FireLens (AWS for Fluent Bit)を使用して、エラーログはCloudWatch Logs、全てのログをData Firehose経由でS3バケットに出力させています。

テレメトリ.png

推奨SLO

まず、推奨SLOで作成をしようとしてみます。

サービスオペレーションで、GET /latency-testを選択して、SLOを作成をクリックします。

1.サービスオペレーション_latency-test.png

Based on your service historical performance, we recommend setting an attainment goal of 99.99% over a 28 day ローリング interval, with a warning threshold of 50%. These recommendations are based on analysing your service recent performance patterns.とRecommendationが表示されていますね。

2.Define SLI_latency-test_可用性.png

レイテンシーに切り替えます。

3.Define SLI_latency-test_レイテンシー.png

自動でレイテンシーが600msで設定されました。

オペレーションをGET /に変更します。

4.Define SLI_root_レイテンシー.png

今度は297.65msになりました。

過去実績から自動で調整されてくれていますね。

Nextをクリックすると、一気に確認画面になりました。

5.Review and create.png

SLOゴールやバーンレートの設定、SLO時間枠除外は割愛されています。

SLOを作成をクリックすると、そのままSLOの作成がされました。

6.SLO ecs-express-app-GET -latency-test-LATENCY-c4f244de が正常に作成されました。.png

バーンレートの設定は後から変更可能なので、もし調整したい場合は調整しましょう。

ただし、以下記事で紹介しているようなバーンレートアラームやSLOアラームはSLOの編集画面から設定することはできません。CloudWatch Alarmとして自身で作成することになるため一手間かかってしまいます。

https://dev.classmethod.jp/articles/cloudwatch-application-signals-several-windows-burnrate-alarm-cdk/

サービスオペレーションに対してではなく、サービスの依存関係に対しても推奨SLOでのSLOは作成可能です。

試しにAurora PostgreSQLのレイテンシーを選択すると、以下のように200msが提案されました。

7.Define SLI_依存関係_レイテンシー.png

期間とすると以下のようになります。

8.Define SLI_依存関係_レイテンシー_期間.png

また、メトリクスタイプを可用性に変更すると以下のようになります。

9.Define SLI_依存関係_可用性_期間.png

サービスSLO

続いて、サービスレベルSLOです。

要するに該当サービスの全てのオペレーションを選択する形のSLOです。

指定すると以下のようになります。

10.すべてのオペレーション.png

Recommendation and Createをクリックすると、以下のようになります。

11.すべてのオペレーションのレビュー.png

SLOの作成をすると以下のようになります。

12.SLO.png

サービスからこれらのSLOの確認も可能です。

13.サービスからSLOを確認.png

SLOパフォーマンスレポート

SLO一覧は以下のとおりです。

14.SLO一覧.png

Performance reportとトグルがありますね。

こちらをクリックすると、以下のようにローリングウィンドウやカレンダーウィンドウ単位の結果を確認可能です。

15.Performance report.png
16.Interval.png
17.Interval calendar.png

当日分の情報は見れませんが、翌日確認すると、前日の結果を表示できました。

18.1日経過後のPerformance report.png

Export to CSVで表示されている内容をエクスポートすることも可能です。

19.Export to CSV.png

エクスポートした結果は以下のとおりです。

Type,SLO Name,Goal (%),Mar 16 - Attainment (%),Mar 17 - Attainment (%),Mar 16 - Error Budget (%),Mar 17 - Error Budget (%)
Service,ecs-express-app--all-operations--LATENCY-c19391dd,90.00,96.75,,67.50,
サービスオペレーション,ecs-express-app-GET -latency-test-LATENCY-c4f244de,99.80,,,,

推奨SLOをベースに考えるのもあり

Amazon CloudWatch Application Signalsに追加された推奨SLO / サービスレベルSLO / パフォーマンスレポートを紹介しました。

SLOは基本的にビジネス要件から導き出すものだと思います。推奨SLOは過去の計測結果に基づく提案であり、ビジネス要件を反映したものではありません。

とはいえ、何も設定しなかったり、最初から厳しめ目の設定をすることは避けるべきです。まずは推奨SLOをベースに考えるのもありかなと思います。

You can always refine SLO definitions and targets over time as you learn about a system’s behavior. It’s better to start with a loose target that you tighten than to choose an overly strict target that has to be relaxed when you discover it’s unattainable.

Google SRE - Defining slo: service level objective meaning

その際は以下情報も読み込んだ上で、適切なものを設定しましょう。

https://sre.google/sre-book/service-level-objectives/

https://sre.google/workbook/implementing-slos/

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!

この記事をシェアする

関連記事