Amazon CloudWatch でインシデントレポートが作成できるようになりました。

CloudWatch investigations(調査)とは

Amazon CloudWatch Investigations (調査) は、AI (Amazon Q) を活用してアプリケーションやインフラストラクチャの異常に関する根本原因分析 (RCA) を自動化・支援する機能です。

CloudWatch アラームがトリガーされた際、通常であればエンジニアがメトリクス、ログ、トレースを手動で突き合わせて調査を行いますが、Investigations はこれらを自動的に相関分析します。

今回追加されたインシデントレポート機能は、その調査結果を自然言語(英語)でドキュメント化してくれるものです。具体的には以下の情報を自動生成します。

  • 概要
    • 何が起きたかの要約
  • 影響範囲と原因
    • どのリソースが影響を受け、何がトリガーとなったか
  • 5 Whys analysis(日本語だとなぜなぜ分析)
    • 「なぜ」を繰り返して根本原因を掘り下げる分析
  • 修復の推奨事項
    • 解決のためのアクションプラン

これにより、事後検証資料を作成する際の手間を削減し、復旧や改善作業を早く始めることができます。

インシデントレポートを作成してみる

CloudWatchのAWSマネジメントコンソールからAI オペレーションの調査を選択します。

今回はCloudWatchアラームから調査を作成してみます。
必ず異常になるAWS Lambda関数を作成し、CloudWatchアラームを作成します。

# test-alarm-function.py
def lambda_handler(event, context):
    raise Exception("意図的なエラーです")

アラームを作成した後に調査を紐づけることも出来ますが、作成時にも紐づけることが可能です。今回は後で紐づけるので、アラーム作成では何も選択しないままにします。


アラームが作成できたら、Lambda関数をテスト実行し、アラーム状態にしておきます。


次に作成したCloudWatchアラームを選択し、調査から「新しい調査を開始」を選択します。

調査のタイトルや説明を追加します。
現時点では英語のみサポートされているため、日本語で入力するとエラーが表示されてしまう点に注意です。

アラーム情報の下に「Hypotheses(仮説)」が表示されています。
なぜアラーム状態になったのかを調査して、仮説を立ててくれています。この仮説を承認する必要がありますので、確認の上、「承諾」ボタンを押します。

これでインシデントレポートを作成する準備が整いました。
AI オペレーション > 調査の画面に戻ります。
先ほど作成したアラームに対する調査が表示されています。

「Incident report」からレポートを作成します。
いくつか収集したfact(情報)が表示されています。内容を確認し、「Generate」ボタンを押します。

数分待つとインシデントレポートが表示されます。
レポート精度とは別ですが、今回は日本語で「意図的なエラー」があるため、AIも意図的と判定しているようです。
ログやコメントを適切に残すことは人間だけではなく、調査をAIに行なってもらうときにもかなり有効だと感じました。

数ステップで多くの時間が必要になるインシデント調査ですが、ドキュメントにもありますが、あくまでもレポートのドラフトとして活用し、テレメトリデータでは捉えきれない要因を人間が調査・確認する使い方が適していそうです。

The most effective approach involves treating AI-derived facts as highly informed starting points for investigation rather than definitive conclusions.

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Investigations-IncidentReports-ai-facts.html

まとめ

インシデント発生時に急に作成すると焦ってしまいそうですが、事前に検証しフローに組み込めていれば作業工数をかなり減らせて有効そうです。
ただあくまでドラフトになりそうなので、人間によるファクトチェックは必須ですが、ゼロから調査して文章化するより断然早くレポートが作成できました。