CloudWatch SyntheticsでURL監視をする


気になるAWS INFOを見つけたので、試してみます。

https://aws.amazon.com/jp/blogs/aws/new-use-cloudwatch-synthetics-to-monitor-sites-api-endpoints-web-workflows-and-more/

CloudWatch に新機能!

Cloudwatchのコンソール上に、追加されている機能がありました!

CloudWatch Synthetics」というものらしく、Syntheticは、合成という意味らしい。

CloudWatch Synthetics

コンソール上のTOP画面には、こう記載されています。

壊れたリンクやデッドリンクの完全なトランザクション、ステップバイステップのタスク完了、ページロードエラー、UI アセットのロード遅延、より複雑なウィザードフロー、またはチェックアウトフローをモニタリングします。

実際に何ができるのか

簡単なWebテストが可能みたいです。

料金

枠名 内容
無料利用枠 1 か月あたり 100 回の Canary 実行
有料利用枠 Canary 実行ごと0.0019USD

実際に試します

監視するサーバを作成

今回は、作成済みであるWordpressサーバを対象にします。

Canary作成

「Canary作成」 ボタンを押してください。

Canaryの作成方法はデフォルト

Canary名とテストエンドポイントを入力


エンドポイントは、自動でスクリプトに入力されるみたいです。
最後の方を見ると、下記の通り、200ステータスが返ってきたら、OKとしているみたいです。

if (response.status() !== 200) {
        throw "Failed to load page!";
    }

スケジュール設定


選択肢は、

  • 1 度実行
  • 定期的に実行(分単位で選択可能)

Canaryの成功失敗の実行情報の保持期間


指定できる範囲は 1~455 日です。

保管場所(S3)


Canary名と同一の名前で、S3バケット名が記入されます。
既存のバケットに変更は可能です。

アクセス許可

デフォルトのままで行きます。

Canaryを作成ボタンをクリックしたら、1分くらいで作成されます。

確認

成功時

成功すると、水色になりますね。

失敗時

極端ですが、インスタンスの停止をしております。
失敗となり、赤色になっていますね。

監視スクリプトログ

ログを見る限り、Lambdaが裏側で動いていますね。
テストコードは、lambdaで実施しているみたいです。

スクリーンショット

テスト対象のエンドポイントのキャプチャもしてくれるみたいなので、エビデンスを残すのにも良さそうですね。

まとめ

  • Cloudwatchで、URL監視を実装できた
  • 中身自体がlambda関数なので、カスタマイズができそう
  • 監視エビデンスとして、ログやスクリーンショットが保存できる