Management and Governance

Amazon CloudWatch Synthetics

エンドポイントやAPIに対してスクリプト化した疑似アクセス(カナリア)を定期実行し、実際のユーザーより先に問題を検知する仕組みです。AIP-C01では、デプロイ後の合成ワークフロー検証として脇役で出ます。

  • C|周辺
  • D5 テスト・検証・トラブルシュート

ひとことで言うと

Node.js・Python・Java で書いたスクリプト(カナリア)を Lambda 上で定期実行し、実際の顧客が来る前にエンドポイントやAPIの可用性・レイテンシを継続確認する仕組みです。

要するに、無人の試食係です。お客(実トラフィック)が来ない時間帯でも、同じ経路をたどって味見(アクセス)し続け、異常があれば先に気づきます。

何に使うか

用途使い方
REST API/URL/Webコンテンツの死活監視cron/rate式のスケジュールで、最短1分間隔でカナリアを実行する
改ざん検知フィッシングやコード注入・XSSによる不正な変更を検知する
デプロイ後の合成的な動作確認SuccessPercent(成功率)・Duration(応答時間)等を CloudWatchSynthetics 名前空間のメトリクスとして記録する

試験でどう問われるか

主役では出ません。出るとすれば、GenAIアプリのデプロイ検証を実トラフィックを待たずに自動化したいというシナリオの選択肢としてです(試験ガイドが D5「デプロイ検証(合成ワークフロー・セマンティックドリフト)」として挙げる領域に対応します)。

問われ方正解に寄る条件
「本番デプロイ直後に、実ユーザーより先にAPIの異常を検知したい」CloudWatch Synthetics のカナリアで疑似リクエストを定期実行する

取り違えやすいもの

迷う相手切り分けの一言
CloudWatch アラーム単体アラームは実際のメトリクスの閾値超過を見る。Synthetics はそのメトリクスを能動的に作り出す側で、実トラフィックが無くても異常を検知できる
X-RayX-Ray は実リクエストの経路をトレースする。Synthetics は実リクエストが無くても擬似的にリクエストを発生させる

想起チェック

Q1. 実際のユーザートラフィックが無い時間帯でもAPIの異常を検知したいとき使う仕組みは?

CloudWatch Synthetics のカナリアです。スクリプト化した疑似アクセスを定期実行し、実トラフィックに依存せず可用性やレイテンシを監視します。

Q2. カナリアが記録する主要なメトリクスを2つ挙げると?

SuccessPercent(成功率)と Duration(実行時間)です。ともに CloudWatchSynthetics 名前空間で、CanaryName をディメンションとして記録されます。

出典(AWS公式)