Amazon Q DeveloperがSynthetics Canariesと連携できるようになりました

記事タイトルとURLをコピーする

元記事

2025/11/05に公開された下記の記事のとおり、Amazon Q DeveloperからSynthetics Canaryのエラーを解析できるようになりました。

aws.amazon.com

Amazon Q Developerとは

AWS が提供する生成AIベースの開発者向けアシスタント です。 AWSマネジメントコンソール・IDE・CLI などで利用でき、開発者の作業を自動化・支援してくれます。

本記事ではAWSマネジメントコンソール上でのトラブル調査にフォーカスして記載します。 マネジメントコンソール上でのAmazon Q Developerの活用例については下記の記事が参考になります。

blog.serverworks.co.jp

Synthetics Canaryとは

アプリや API が正常に動いているかを自動で監視するためのロボットテスターです。 AWSが提供するシンセティック(Synthetic)モニタリング機能で、 指定した間隔でロボットがアプリにアクセスし、実際に操作して動作を確認します。

システムの外側からユーザーと同じように動作確認をする監視方法で、いわゆる外形監視の機能となります。 Webサイトの場合は、定期的にページにアクセスし正常に表示されるかチェックしたり、 APIの場合は、実際にAPIを呼び出してみて動作を確認します。

検証用アプリケーションの構成

検証にあたり、AWS SAMを用いて下記の構成のHTTP APIを作成しました。

下記の3つのLambdaを作成します。

  1. クライアント(curlコマンド)からのリクエストを受け取って、SQSにメッセージを格納するAPI (sam-test-stack-Enqueue)

  2. SQLからメッセージを取り出してDynamoDBに格納するLambda (sam-test-stack-Worker)

  3. クライアントからのリクエストにより、DynamoDBをスキャンして返却するAPI (sam-test-stack-Query)

上記3つのLambdaを作成し、1と3についてはAPI Gatewayの背後に配置してAPIとして公開します。

各LambdaはADOT(AWS Distro for OpenTelemetry)を有効にし、OTel(OpenTelemetry)の情報をApplication Signalsに連携します。

検証用アプリケーションを作成した後、実際にAPIを叩いてOTelの情報を出力すると Application Signalsのトレースマップ画面に下記のように表示されます。

検証用アプリケーションの構成

青枠が1.のsam-test-stack-Enqueue、黄枠が2.のsam-test-stack-Worker、赤枠が3.のsam-test-stack-Queryを表しています。

Synthetics Canaryの設定

ここから外形監視の設定を加えていきます。 Synthetics Canaryの画面で[Canaryを作成]ボタンをクリックします。

Synthetics Canaries#1

[Canaryを作成]画面では、[設計図]欄で[ハートビートのモニタリング]を選択し、エンドポイントのURLとして、上記1.のsam-test-stack-EnqueueのURLを指定します。 今回はAPIの画面がないことから、スクリーンショットは取得しない設定としています。

Synthetics Canaries#2

スクリプトエディタはChromeを選択しています。

Synthetics Canaries#3

スケジュールは5分間隔で実行するようにしています。

Synthetics Canaries#4

アクティブトレースは有効にしています。

Synthetics Canaries#5

同様の手順でsam-test-stack-Queryに対する外形監視も追加します。 設定が完了し、正常にAPIを監視できるようになりました。

Synthetics Canaries#6

擬似障害の発生

下記コマンドを実行して、sam-test-stack-Enqueueの同時実行数を0にします。

aws lambda put-function-concurrency --function-name sam-test-stack-Enqueue --reserved-concurrent-executions 0

これにより、該当のAPIが実行できずエラーになります。 15分ほど待ってSynthetics Canaryの画面を確認すると、下記のとおり外形監視が失敗になりました。

Synthetics Canaries#7

詳細画面でも下図のように失敗していることが確認できます。

Synthetics Canaries#8

Amazon Q Developerによる原因調査

上記詳細画面でAmazon Q Developerを開き、プロンプトを入力します。

Amazon Q Developer#1

途中省略しますが下図のとおり、エラー箇所を特定してくれます。

Amazon Q Developer#2

続けてAPI Gatewayのログを確認するようにプロンプトを投入します。

Amazon Q Developer#3

下図のとおり、Lambda側のエラーであるとの回答が得られました。

Amazon Q Developer#4

Lambda関数のエラーを調査するようにプロンプトを投入します。

Amazon Q Developer#5

根本原因がLambdaのスロットリングであると特定されました。

Amazon Q Developer#6
Amazon Q Developer#7

まとめ

本記事では検証用のアプリとSynthetics Canaryをセットアップしていますが、 実際の運用環境でSynthetics Canaryが既に設定されているのであれば、 特に何も変更することなくAmazon Q Developerを利用してSynthetics Canaryのエラーを起点として根本原因を調査することができます。 Amazon Q Developerの活用により、障害発生時の対応がより迅速にできるようになると見込まれます。

なお、Amazon Q Developerが各種ログを解析する際、AWSマネジメントコンソールにログインしているユーザの権限を利用します。 現在の権限設定によってはIAMユーザやIAMロールの設定変更が必要となります。