コンテンツにスキップ

シンセティックテスト

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

Canary はスクリプトで構成されており、API とウェブサイトのエクスペリエンスを 24 時間 365 日テストするためにスケジュールで実行できます。 実際のユーザーと同じコードパスとネットワークルートに従い、レイテンシやページロードエラー、壊れたリンクやデッドリンク、壊れたユーザーワークフローなど、予期しない動作を通知します。

CloudWatch Synthetics architecture

Important

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

はじめに

完全カバレッジ

Tip

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

新しい Canary の記録

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

集計メトリクスの表示

Canary スクリプトのフリートから収集された集計メトリクスについて、すぐに利用できるレポートを活用します。CloudWatch 自動ダッシュボード

The CloudWatch Dashboard for Synthetics

Canary の構築

ブループリント

複数の Canary タイプのセットアッププロセスを簡略化するために、Canary ブループリント を使用します。

シンセティック Canary を作成する複数の方法

Info

ブループリントは、Canary の記述を開始するための便利な方法であり、コードなしでシンプルなユースケースをカバーできます。

保守性

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

Success

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

Success

利用可能な場合は、Canary を最新のランタイムバージョンにアップグレードします。

文字列シークレット

Canary からシークレット(ログイン資格情報など)を、Canary やその環境変数の外部のセキュアなシステムからプルするようにコーディングできます。AWS Lambda からアクセスできるシステムなら、実行時に Canary にシークレットを提供できる可能性があります。

Success

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

Canary の大規模管理

壊れたリンクの確認

Success

ウェブサイトに多数の動的コンテンツとリンクが含まれている場合は、CloudWatch Synthetics を使用してウェブサイトをクロールし、壊れたリンクを検出し、失敗の理由を特定できます。次に、失敗のしきい値を使用して、しきい値の違反が発生したときにオプションで CloudWatch アラーム を作成します。

複数のハートビート URL

Success

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

グループで整理する

Success

グループで Canary を整理し、トラッキングすることで、集計メトリクスを表示したり、障害をより簡単に分離およびドリルダウンしたりできます。

Organize and track canaries in groups

Warning

クロスリージョンのグループを作成する場合、Canary の正確な名前が必要になります。

ランタイムオプション

バージョンとサポート

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

Success

Canary で最新のランタイムバージョンを常に使用することで、Synthetics ライブラリの最新の機能とアップデートを利用できます。

廃止予定のランタイム を使用している Canary がある場合、CloudWatch Synthetics は 60 日前にメールで通知します。

コードサンプル

Node.js と PuppeteerPython と Selenium のコードサンプルから始めましょう。

Selenium 用のインポート

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