Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみた

2021.09.15

こんにちは、CX事業本部 IoT事業部の若槻です。

Amazon CloudWatch Syntheticsを使用すると、WebサイトやAPIのURLの監視(外形監視)を行うことができます。

今回は、Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみました。

構成

やってみた

Canaryの作成

CloudWatch Syntheticsでの外形監視はCanaryというリソースを作成して行います。(Canaryは炭鉱のカナリアから由来したAWSの造語と思われます。)

AWSマネジメントコンソールでAmazon CloudWatchのダッシュボード画面を開きます。

サイドバーメニューから[アプリケーションのモニタリング]-[Synthetics Canaries]を選択すると、Canaryの管理ページが開けます。[Create Canary]をクリックしてCanaryの作成を開始します。

今回は基本的なURL監視を行いたいので[設計図を使用する]-[ハートビートのモニタリング]を選択します。

[Canaryビルダー]では、Canaryの名前、監視対象のURLを指定します。スクリーンショットを取得したいので[Take screenshots]にチェックを入れます。

[スクリプトエディタ]では、監視用スクリプトを確認、編集できます。ここまでの設定が反映されたスクリプトが自動で作成されます。

Canaryの実行スケジュールを指定できます。今回は1回実行を指定して手動のみで実行するようにします。

Canary実行により作成されたデータの保持期間と保存先のS3バケットを設定します。

Canaryが使用するIAMロールを設定します。

Canaryのアラームを設定できます。今回はアラーム通知を行いたいので[新しいアラームの追加]をクリックします。

SuccessPercent期間失敗のメトリクスからアラームの条件を設定します。まずSuccessPercentの既定の設定を使用して、監視期間5分でSuccessPercent(成功率)が90%を下回るという条件でアラーム通知を行う設定とします。

[このCanaryの通知を設定する]ではアラーム発生時の通知を設定できます。今回は[新しいトピックの作成]でSNSトピックを新規作成します。トピック名と通知先メールアドレスを指定して[トピックの作成]をクリックします。

作成したトピックを指定できました。

トピックのサブスクライブのComfirmを求めるメールが指定したメールアドレス来るので、Comfirm subscriptionをしておきます。

今回は触れませんが、VPC、タグ、Active tracing(X-Ray)の設定もできます。[Canaryを作成]をクリックして作成を行います。

動作確認

SuccessPercentによるアラーム通知

Canaryが作成されると一覧に追加されます。クリックして開きます。

スケジュール実行を設定していないので「このCanaryは停止しています。」と表示されています。[アクション]-[開始]をクリックして手動実行してみます。

実行が開始され、ステータスが「起動中」となります。

実行が終了するとステータスが「停止」に戻ります。2つの成功ポイントが100%にプロットされています。2つ目がただ今実行したものです。1つ目は作成時に既定でプロットされたものと思われます。

[スクリーンショット]タブではCanary実行により取得したスクリーンショット画像が確認できます。

[HARファイル]タブではCanary実行時の通信の詳細な情報が確認できます。

また、作成してから手動実行するまでの間に5分が経っていたようでアラーム通知メールが届いていました。

メールに記載のリンクからCloudWatchアラームを開いてグラフを見ると、手動実行するまでの間にアラーム状態となっていたことが分かります。

その後手動実行したCanaryをしばらく放置すると再度同様のアラーム通知メールが届きました。手動実行後にまた成功率90%以下となる期間が5分以上続いたためです。

CloudWatchアラームのグラフを見ると、再度アラーム状態となっています。

失敗によるアラーム通知

先程作成したCanaryの設定変更を行います。

スクリプトエディタでURLを404エラーとなるものに変更します。

CloudWatchアラームのメトリクスを失敗に変更します。

設定変更を保存してCanaryの画面に戻ると、最終実行がいきなり失敗となっていました。ここで気付いたのですが、Canaryの作成後や変更後に自動で1回実行が行われるようです。

しかしこれではアラーム状態が継続したままで通知も行われないので、一度設定を戻して手動実行により成功ポイントを作成した後、再度URLを失敗するものに変更します。

再度正常状態からアラーム状態となりました。

スクリーンショットは404エラー時のものとなっています。ふくろうがかわいい。

しかしアラーム状態になってからなかなかメールが届きません。確認するとCloudWatchアラームの通知設定が消えていました。どうやらCanary側でアラーム条件を変更すると通知設定が消えるようです。

CloudWatchアラームに対して再度アラーム通知を設定します。

Canaryを手動実行してClowdWatchアラームのステータスを正常状態からアラーム状態に変更させます。

するとアラーム通知がメールで届きました。

参考

以上