CloudWatch Syntheticsのリンク切れチェッカーを使ってみた

AWS運用自動化サービス「Cloud Automator」

CloudWatch Syntheticsは任意の監視スクリプトを実行できるマネージドサービスです。
「任意の」と言っても0からスクリプトを作成するのはハードルが高いので、テンプレートが4つ用意されています。

前回までの記事では、ハートビートのモニタリングを使っていました。

今回はリンク切れチェッカーを使ってみます。
Webサイトのリンク先が無くなっていたり、障害が起きた場合に検知できるようになります。

準備

下記のリンク構造のWebサイトを用意しました。

設定

CloudWatch > Canaries > Canaryを作成

設計図

リンク切れチェッカーを指定します。

Canary ビルダー

任意の名前、チェック対象のURL、リンクの最大数を指定します。

スケジュール、データ保持、データストレージ

今回はデフォルトのままにします。

しきい値、アクセス許可

CloudWatchアラームを作成するため、しきい値を有効にします。
もし有効化できない状態になっていたら、Thresholds設定を有効にする必要があります。
アラートについては、CloudWatch Syntheticsのアラートをメール通知する
をご覧ください。

適切なRoleを選ぶか、新規でRoleを作成します。

Canaryを作成します。

動作確認

全てのリンク先が存在している場合

孫ページまで、全てのページをチェックしています。

Webサーバのログ

Canaryのステータス

正常となります。

リンク先が無くなっている場合

例えば、child2.htmlが無くなっている時は、child3.html以降はチェックされません。

Webサーバのログ

Canaryのステータス

失敗となります。

CloudWatchアラームからのメール

CloudWatchアラームとSNS連携をしている場合は、下記のようなメールを受信可能です。

感想

CloudWatch Synthetics標準テンプレートのリンク切れチェッカーは、うまく動いてくれました。
それなりに複雑な監視も、スクリプト次第で可能とわかりました。
今まで、他のSaaSやOSSで外形監視していたものも、今後はCloudWatch Syntheticsで置き換えられるかもしれません。

AWS運用自動化サービス「Cloud Automator」