Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
メインコンテンツまでスキップ

Synthetic テスト

Amazon CloudWatch Synthetics を使用すると、実際のユーザーがいない場合でも、顧客の視点からアプリケーションを監視できます。API と Web サイトのエクスペリエンスを継続的にテストすることで、ユーザートラフィックがない場合でも発生する断続的な問題を可視化できます。

Canary は設定可能なスクリプトであり、スケジュールに従って実行することで、API と Web サイトのエクスペリエンスを 24 時間 365 日継続的にテストできます。実際のユーザーと同じコードパスとネットワークルートをたどり、レイテンシー、ページ読み込みエラー、リンク切れ、ユーザーワークフローの中断など、予期しない動作を通知できます。

CloudWatch Synthetics architecture

注記

Synthetics Canary は、所有権または権限を持つエンドポイントと API のみを監視するために使用してください。Canary の頻度設定によっては、これらのエンドポイントのトラフィックが増加する可能性があります。

はじめに

完全なカバレッジ

ヒント

テスト戦略を策定する際は、Amazon VPC 内のパブリックエンドポイントとプライベート内部エンドポイントの両方を考慮してください。

新しい Canary の記録

CloudWatch Synthetics Recorder Chrome ブラウザプラグインを使用すると、複雑なワークフローを持つ新しい Canary テストスクリプトをゼロから素早く構築できます。記録中に実行された入力とクリックのアクションは、Canary の作成に使用できる Node.js スクリプトに変換されます。CloudWatch Synthetics Recorder の既知の制限事項は、このページに記載されています。

集約メトリクスの表示

Canary スクリプトのフリートから収集された集計メトリクスに関する、すぐに使えるレポート機能を活用できます。CloudWatch Automatic Dashboard

The CloudWatch Dashboard for Synthetics

Canary の構築

ブループリント

複数のカナリアタイプのセットアッププロセスを簡素化するには、カナリアブループリントを使用します。

Multiple ways to create a synthetics canary

備考

ブループリントは、Canary の作成を開始するための便利な方法であり、シンプルなユースケースであればコードなしで対応できます。

保守性

独自の Canary を作成する場合、それらはランタイムバージョンに関連付けられます。これは、Selenium を使用する Python の特定のバージョン、または Puppeteer を使用する JavaScript の特定のバージョンになります。現在サポートされているランタイムバージョンと非推奨のランタイムバージョンのリストについては、[このページ]を参照してください。

備考

環境変数を使用して、Canary の実行中にアクセスできるデータを共有することで、スクリプトの保守性を向上させます。

備考

利用可能になったら、Canary を最新のランタイムバージョンにアップグレードしてください。

文字列シークレット

canary をコーディングして、canary またはその環境変数の外部にある安全なシステムからシークレット (ログイン認証情報など) を取得できます。AWS Lambda から到達可能なシステムであれば、実行時に canary にシークレットを提供できる可能性があります。

備考

テストを実行し、AWS Secrets Manager を使用してデータベース接続の詳細、API キー、アプリケーション認証情報などのシークレットを保存することで、機密データを保護します。

Canary の大規模管理

リンク切れの確認

備考

ウェブサイトに大量の動的コンテンツとリンクが含まれている場合、CloudWatch Synthetics を使用してウェブサイトをクロールし、リンク切れを検出して、障害の原因を特定できます。その後、障害しきい値を使用して、しきい値に違反した場合にオプションで CloudWatch アラームを作成できます。

複数の Heartbeat URL

備考

単一のハートビート監視 Canary テストで複数の URL をバッチ処理することで、テストを簡素化し、コストを最適化できます。その後、Canary 実行レポートのステップサマリーで、各 URL のステータス、期間、関連するスクリーンショット、および失敗理由を確認できます。

グループで整理する

備考

グループで Canary を整理および追跡して、集約されたメトリクスを表示し、障害をより簡単に分離してドリルインできます。

Organize and track canaries in groups

警告

クロスリージョングループを作成する場合、グループには Canary の正確な名前が必要になることに注意してください。

ランタイムオプション

バージョンとサポート

CloudWatch Synthetics は現在、スクリプトに Node.js を使用し Puppeteer フレームワークを使用するランタイム、およびスクリプトに Python を使用し Selenium WebDriver をフレームワークとして使用するランタイムをサポートしています。

備考

Canary には常に最新のランタイムバージョンを使用して、Synthetics ライブラリに加えられた最新の機能と更新を利用できるようにしてください。

CloudWatch Synthetics は、今後 60 日以内に非推奨となる予定のランタイムを使用している Canary がある場合、メールで通知します。

コードサンプル

Node.js と Puppeteer および Python と Selenium の両方のコードサンプルを使用して開始します。

Selenium のインポート

Python と Selenium で Canary をゼロから作成するか、既存のスクリプトを最小限の変更でインポートして作成します。