ひとことで言うと
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-Ray | X-Ray は実リクエストの経路をトレースする。Synthetics は実リクエストが無くても擬似的にリクエストを発生させる |
想起チェック
Q1. 実際のユーザートラフィックが無い時間帯でもAPIの異常を検知したいとき使う仕組みは?
CloudWatch Synthetics のカナリアです。スクリプト化した疑似アクセスを定期実行し、実トラフィックに依存せず可用性やレイテンシを監視します。
Q2. カナリアが記録する主要なメトリクスを2つ挙げると?
SuccessPercent(成功率)と Duration(実行時間)です。ともに CloudWatchSynthetics 名前空間で、CanaryName をディメンションとして記録されます。