👀

Cloudwatch Syntheticsで外形監視を行う

2023/06/21に公開

はじめに

運用監視の一環として、外形監視を行うことがあります。
外形監視とは、Webサイトの外形を監視することで、Webサイトの表示が正常に行われているかを確認することです。
本記事では、Cloudwatch Syntheticsを使って外形監視を行う方法を紹介します。

Cloudwatch Syntheticsとは

Cloudwatch Syntheticsは、AWSが提供する外形監視サービスで、WebサイトやURL、REST APIに対してのモニタリングを自動で実行可能なサービスです。

Canaryとは

Canaryとは、Node.js または Python で記述されたスクリプトです。
Canaryは、Puppeteer を介してヘッドレス Google Chrome ブラウザまたは Selenium Webdriver へのプログラムアクセスが可能です。
エンドポイントの可用性とレイテンシーをチェックし、読み込み時間のデータと UI のスクリーンショットを保存できます。
REST API、URL、ウェブサイトのコンテンツをモニターリングし、フィッシング、コードインジェクション、およびクロスサイトスクリプティングによる不正な変更をチェックできます。

Canaryの作成

Canaryの作成

まずは、Canaryを作成します。
AWSコンソール上の検索欄にて、Cloudwatch Syntheticsと入力し、Cloudwatch Syntheticsの画面を開きます。
Cloudwatch Synthetics

Canaryの画面が開いたら、「Canary を作成」をクリックします。
Cloudwatch Synthetics

設計図、Canary ビルダー設定

今回は、WEBページの外形を監視するため、設計図のテンプレートを「ハートビートのモニタリング」を選択し、
Canary名と、モニタリング対象のURLを入力します。
スクリーンショットも確認したいので、スクリーンショットを取得するにチェックを入れます。
Cloudwatch Synthetics

スクリプトエディタ設定

スクリプトエディタに関しては、今回はデフォルトのままで問題ありません。
Cloudwatch Synthetics

スケジュール設定

監視間隔は最短1分まで設定可能ですが、 今回はデフォルトの5分で問題ありません。
Cloudwatch Synthetics

データ保持とデータストレージ設定

データ保持に関しては障害データと成功データの保持期間をそれぞれ設定可能ですが、 今回はデフォルトのままで問題ありません。
Cloudwatch Synthetics

アクセス許可、その他の設定

アクセス許可に関しては、新しいロールを作成するか、既存のロールを使用するかを選択可能です。
ほかにアラート通知、VPC設定、タグ設定も可能ですが、今回はデフォルトのままで問題ありません。
すべての設定が完了したら、「Canary を作成」をクリックします。
Cloudwatch Synthetics

Canaryの実行

実行概要の確認

Canaryの作成が完了したら、Canaryの画面に戻り、作成したCanaryを選択します。
Cloudwatch Synthetics

Canaryの画面の中に、Canaryの実行結果が表示されます。
「概要欄」のところに、最新の実行結果や、過去24時間の問題と過去 7 日間の成功率が表示されます。
「問題」のところに、問題が発生した場合の詳細が表示されます。
下にある「ステップ」タグに、Canaryの実行結果の詳細が表示されます。
Cloudwatch Synthetics

スクリーンショットの確認

下にある「スクリーンショット」タグに、Canaryの実行結果のスクリーンショットが表示されます。
Cloudwatch Synthetics

実行ログの確認

「ログ」タグに、Canaryの実行結果のログが表示されます。
Cloudwatch Synthetics

HAR ファイルの確認

「HAR ファイル」タグに、Canaryの実行結果のHARファイルが表示されます。
ここでは、Canaryが実行したHTTPリクエストとレスポンスの詳細を確認できますので、どこの返答が遅いのか、どのリクエストがエラーになっているのかを確認できます。
Cloudwatch Synthetics

まとめ

以上で、簡単なCanaryを作成して実行するところまでを紹介しました。
本記事では簡単な外形監視しか紹介できていませんが、 要件によってエンドユーザーの操作をシミュレートしたり、実行ごとに視覚的な変更をモニタリングすることもできます。
比較的簡単に設定できるので、ぜひご活用ください。

Discussion