合成モニタリング (canary)
Amazon CloudWatch Synthetics を使用して、スケジュールに沿って実行される設定可能なスクリプトである Canary を作成し、エンドポイントと API をモニターリングできます。Canary は顧客と同じルートをたどり、同じアクションを実行します。これにより、アプリケーションに顧客トラフィックがない場合でも、顧客エクスペリエンスを継続的に検証できます。Canary を使用すると、顧客が問題を検出する前に問題を検出できます。
Canary は、Node.js または Python で記述されたスクリプトです。Node.js または Python をフレームワークとして使用する Lambda 関数をアカウント内に作成します。Canary は、HTTP プロトコルと HTTPS プロトコルの両方で動作します。Canary は、CloudWatch Synthetics ライブラリを含む Lambda レイヤーを使用します。このライブラリには、NodeJS Canary 用 CloudWatch Synthetics の NodeJS バージョンと、Python Canary 用 CloudWatch Synthetics の Python バージョンが含まれています。レイヤーは CloudWatch Synthetics サービスアカウントに属します。ライブラリが顧客情報を転送したり保存したりすることはありません。すべての顧客データは、顧客アカウントにのみ保存されます。
Canary は、Puppeteer を介してヘッドレス Google Chrome ブラウザまたは Selenium Webdriver へのプログラムアクセスを提供します。Puppeteer の詳細については、「Puppeteer
Canary はエンドポイントの可用性とレイテンシーをチェックし、読み込み時間のデータと UI のスクリーンショットを保存できます。REST API、URL、ウェブサイトのコンテンツをモニターリングし、フィッシング、コードインジェクション、およびクロスサイトスクリプティングによる不正な変更をチェックできます。
CloudWatch Synthetics は Application Signals と統合されており、これらを導入することで、アプリケーションサービス、クライアント、Synthetics canary、サービスの依存関係を検出し、モニタリングできます。Application Signals を使用すると、サービスのリストやビジュアルマップを確認したり、サービスレベル目標 (SLO) に基づくヘルスメトリクスを表示したり、ドリルダウンして相関関係のある X-Ray トレースを確認したりして、より詳細なトラブルシューティングを行うことができます。Application Signals で canary を表示するには、X-Ray アクティブトレースを有効にします。canary は、サービスに関連付けした [サービスマップ] に加え、canary が呼び出すサービスの [サービス詳細] ページに表示されます。
Canary の動画デモについては、次を参照してください。
「Introduction to Amazon CloudWatch Synthetics
」(Amazon CloudWatch Synthetics の概要) 「Create Canaries Using Amazon CloudWatch Synthetics
」(Amazon CloudWatch Synthetics を使用して Canary を作成する) 「Visual Monitoring with Amazon CloudWatch Synthetics
」(Amazon CloudWatch Synthetics でのビジュアルモニターリング)
Canary は 1 回実行するか、定期的なスケジュールで実行できます。Canary は毎分 1 回の頻度で実行することができます。Canary をスケジュールする際は、cron 式とレート式のどちらも使えます。
Canary を作成および実行する前に考慮すべきセキュリティの問題については、「Synthetics Canary のセキュリティ上の考慮事項」を参照してください。
Canary は、デフォルトで CloudWatchSynthetics
名前空間にいくつかの CloudWatch メトリクスを作成します。これらのメトリクスには、ディメンションとして CanaryName
があります。関数ライブラリの executeStep()
または executeHttpStep()
関数を使用する Canary にも、ディメンションとして StepName
があります。Canary 関数ライブラリの詳細については、「Canary スクリプト用のライブラリ関数」を参照してください。
CloudWatch Synthetics と X-Ray トレースマップは効果的に連携できます。CloudWatch と AWS X-Ray の連携により、エンドツーエンドでのサービス確認、パフォーマンスボトルネック特定の効率化、影響を受けるユーザーの把握が可能になります。CloudWatch Synthetics で作成した canary は、トレースマップに表示されます。詳細については、「Using the X-Ray trace map」を参照してください。
現在 CloudWatch Synthetics は、すべての商用 AWS リージョンならびに GovCloud リージョンでご利用が可能です。
注記
アジアパシフィック (大阪) では、AWS PrivateLink はサポートされていません。アジアパシフィック (ジャカルタ) では、AWS PrivateLink と X-Ray はサポートされていません。
トピック
- CloudWatch Canary に必要なロールとアクセス許可
- Canary を作成する
- グループ
- Canary をローカルでテストする
- 失敗した Canary のトラブルシューティング
- Canary スクリプトのサンプルコード
- Canary と X-Ray のトレース
- VPC で Canary を実行する
- Canary アーティファクトの暗号化
- Canary の統計および詳細の表示
- Canary によって発行される CloudWatch メトリクス
- Canary を編集または削除する
- 複数の Canary のランタイムを開始、停止、削除、または更新する
- Amazon EventBridge による Canary イベントのモニターリング