Amazon Q DeveloperとSlackで実現するCloudWatchアラート分析

Amazon Q DeveloperとSlackで実現するCloudWatchアラート分析

2025.09.27

クラウド事業本部運用イノベーション部の いそま です。

前回のブログにて、Amazon Q Developer in chat applicationsをSlack統合し、AWSリソース情報を取得するということをやってみました。

↓前回のブログはこちら

https://dev.classmethod.jp/articles/q-developer-slack-integration/

この機能を運用に活用できないかと考えたところ、

💭 障害(ex.EC2のCPU使用率が上昇しているなど)が発生した際にアラート通知をSlackで受信する

💭 Slackにてアラート分析

などなど…できたら便利だなと思いました。

今回のブログでは、上記の機能を実装し運用に活用できる一例をご紹介します!

構成

image (1)

実装

今回は以下のような流れで、実装を進めます。

EC2のモニタリングアラームをSNS→Amazon Q Developer in chat applicationsを介し、Slackに通知します。

  1. SNSトピックの作成
  2. Amazon Q Developer in chat applicationsとSlackを統合
  3. EC2のCPU使用率(CPUUtilization)を監視するCloudWatchアラームを作成
  4. IAMロールにポリシーを追加
  5. アラート通知確認

まずは、SNSトピックを作成します。

  1. SNSトピック作成

    ※添付画像の項目以外はデフォルト

    トピックの作成-トピック-Simple-Notification-Service-us-east-1-09-27-2025_03_03_PM
  2. 作成されたことを確認する

    cloudwatch-alarms-slack-1-トピック-Simple-Notification-Service-us-east-1-09-27-2025_03_36_PM

次に、Amazon Q Developer in chat applicationsとSlackを統合します。

  1. AWSコンソールにログイン後、Amazon Q Developer in chat applicationsに遷移
  2. [チャットクライアント設定]にて、[Slack]を選択
  3. [クライアントを設定]をクリック
    スクリーンショット 2025-08-10 14.56.15
  4. ワークスペースを設定して、[許可する]を選択する
    スクリーンショット 2025-08-10 15.04.00
  5. クライントの作成完了
    スクリーンショット 2025-08-10 15.04.41

次に、Slackのチャネルを設定します。

  1. [新しいチャンネルを設定]をクリック ※参考キャプチャの赤枠どちらでも可
    スクリーンショット 2025-08-10 15.12.30
  2. 項目に沿って設定する

設定の詳細

設定箇所 設置値
[設定名] 任意の設定名を設定

Slackチャネル
今回はプライベートチャネルを設定しましたが、パブリックチャネルでも問題ないです。

設定箇所 設置値
[チャネルタイプ] プライベート
[チャネル ID] チャネルIDを指定

Slack-チャネル設定を作成-Amazon-Q-Developer-in-chat-applications-旧称-AWS-Chatbot-Global-09-27-2025_03_13_PM

アクセス許可

設定箇所 設置値
[ロール設定] チャネルロール
[チャネルロール] テンプレートを使用してIAMロールを作成する
[ロール名] 任意のロール名を設定
[ポリシーテンプレート] 通知のアクセス許可,Amazon Q Developerのアクセス許可
[チャネルガードレールポリシー] ReadOnlyAccess,AmazonQDeveloperAccess

※ SlackチャネルでAmazon Q Chatを利用するためには、「AmazonQDeveloperAccess」の設定が必要となります。
 今回はQ Chatを使用するため、設定しました。
 https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/q-in-chat-applications.html

スクリーンショット 2025-08-10 18.23.31

通知 - オプション

「1. SNSトピック作成」にて作成したSNSトピックを指定します。

設定箇所 設置値
[リージョン 1] SNSトピックを作成したリージョンを指定
[SNSトピック] SNSトピックを指定

タグ

今回は特に設定していません。

設定箇所 設置値
タグ
  1. チャネル設定がされたことを確認する
    Slack-チャネル設定の詳細-Amazon-Q-Developer-in-chat-applications-旧称-AWS-Chatbot-Global-09-27-2025_03_33_PM

  2. 「2.」の設定が完了すると、SNSトピックにサブスクリプションが自動で追加される
    cloudwatch-alarms-slack-1-トピック-Simple-Notification-Service-us-east-1-09-27-2025_03_35_PM


次に、EC2のCPU使用率(CPUUtilization)を監視するCloudWatchアラームを作成します。

アラームの設定は通常通りで問題ないですが、[通知の送信先]を前述で作成したSNSトピックに設定することだけ意識していただければと思います。
編集-アラーム-CloudWatch-us-east-1-09-27-2025_03_47_PM

(アラームの作成方法を知りたい方は、こちらのブログで丁寧に説明してくださっています!)
https://dev.classmethod.jp/articles/cloudWatch-alarm-to-email/#cloudwatch%25E3%2582%25A2%25E3%2583%25A9%25E3%2583%25BC%25E3%2583%25A0%25E3%2581%25AE%25E8%25A8%25AD%25E5%25AE%259A


次に、IAMロールに必要なポリシーを追加します。

対象のIAMロールは[Slackチャネル]にて作成したIAMロールです。

Slack-チャネル設定の詳細-Amazon-Q-Developer-in-chat-applications-旧称-AWS-Chatbot-Global-09-27-2025_04_10_PM

今回は、EC2モニタリングアラームを分析したいので、以下IAMポリシーを追加しました。

  • AmazonEC2ReadOnlyAccess
  • CloudWatchReadOnlyAccess
    test-role-IAM-Global-09-27-2025_04_14_PM

以上で実装は完了です。
最後に、アラートをSlackに受信できるかの確認をしたいと思います。

まず、EC2のアラートを発生させます。

※アラームの閾値設定「>」を逆にすることで力技でアラートを発生させています。
demo-ec2-CPUUtilization-アラーム-CloudWatch-us-east-1-09-27-2025_04_24_PM
すると、設定したプライベートチャネルにアラート通知が飛んできました🎉

これで無事に実装が完了していることの確認ができました!
demo-channel-2(チャンネル)-personal-workspace-Slack-09-27-2025_04_23_PM

アラート分析

実装が完了しましたので、運用に活用する方法を最後にご紹介します!

※あくまで私なりの活用方法ですので、ご了承ください。

「@AmazonQ」とメンションすることで、Amazon Q Developerと対話することができます。

前述で受信したCloudWatchアラームについて、Slack上でAmazon Q Developerに質問してみます。

demo-channel-2(チャンネル)-personal-workspace-Slack-09-27-2025_04_36_PM

2回ほどやり取りを重ね、最終的に以下のように分析をしてくれました。

※アラームの閾値設定「>」を逆にすることで力技でアラートを発生させていますので、不思議なアラート内容となっている点はご了承ください。
demo-channel-2(チャンネル)-personal-workspace-Slack-09-27-2025_04_37_PM

アラーム状態の詳細

概要 説明
アラーム名 demo-ec2-CPUUtilization
現在の状態 ALARM状態

アラームが発生した理由

概要 説明
閾値を下回ったため 最新のデータポイント1つのうち1つ [3.21%(2025年9月27日 07:15:00)] が閾値(90.0%)を下回りました
OK → ALARM遷移の最小データポイント数 1

分析結果

内容
CPUUtilization メトリックに異常は検出されませんでした
現在のCPU使用率は約3.21%と非常に低い状態です

まとめ

内容
このアラームは、CPU使用率が90%を下回った場合に発生するように設定されているようです。これは通常とは逆の設定で、CPU使用率が低すぎる場合(つまりインスタンスがあまり使用されていない場合)にアラートを出すように構成されている可能性があります。
現在のCPU使用率が3.21%と非常に低いため、このアラームが発生しています。

感想

分析結果としてはもう少し情報が欲しいところではありますが、
大前提、AWSコンソールから人力で調査する手間を考えると、Slack上でこのレベルの情報をプロンプトだけで取得することができるのは、かなり楽なのではないかと思います。

今回は簡単なプロンプトで調査をしましたが、プロンプトの工夫と権限付与(IAMロール)を駆使すれば、あらゆるリソースのアラートを分析できるはずです。(願望)

また、個人的な推しポイントは AWSコンソールにログイン不要 な点です。

運用の現場において何かしらの障害が発生すると、現場もピリついて、緊張からオペミスも頻発します。(私だけかもしれませんが)

そういう時に複数のAWS環境で運用をしていると、間違えて違うAWSアカウントにログイン→操作してしまうなど、致命的なことをやらかしがちです。

ですので、今回紹介したようなAWSコンソールにログインせずとも、Slack上でアラート調査ができるということは、致命的なオペミスを防ぐこともできるのでは!?と個人的に思っています。

長くなりましたが、Amazon Q Developerは運用現場での活躍も期待できますので、これからも追い続けていきたいと思います!

この記事をシェアする

FacebookHatena blogX
Amazon Q DeveloperとSlackで実現するCloudWatchアラート分析 | DevelopersIO