こんにちは、フルスタックエンジニアのryuです。
今回の記事はCloudWatchを使ってWebサイトの死活監視をする方法について解説します。CloudWatchで”http”や”https”にリクエストを送信して、正常に返答が返ってくるか監視を行います。CloudWatch Synthetics Canariesという機能を使うと、簡単に設定することができます。
目次
CloudWatchを使ってWebサイトの死活監視をする方法を解説
今回の記事では、CloudWatchを使ってWebサイトの死活監視をする方法を解説します。
例えば、「https://engineer-ninaritai.com/」にアクセスできるかどうかを監視します。サイトがダウンしたら、通知を送って監視者にいち早く知らせます。サイトを安定稼働させるために重要な設定です。
CloudWatch Synthetics Canariesを使うと簡単に設定することができます。
手順は以下の通りです。
- Canaryの作成
- 死活監視するURLを設定する
- 死活監視の間隔を設定する
- CloudWatchとSNSで通知の設定
では、早速やってみましょう!
Canaryの作成
まず、CloudWatchのコンソール画面に移動します。左側のメニューバーから「Synthetics Canaries」を選択します。

その後、「Canaryを作成」をクリックします。

死活監視するURLを設定する
次に死活監視するURLを設定します。Canaryの設定画面からURLを入力することで監視先を指定することができます。
まず、「設計図を使用する」にチェックを付けて「ハートビートのモニタリング」を選択します。これはデフォルトの設定のままです。

その後、Canaryビルダーの名前を入力し、エンドポイントURLに監視したいURLを入力します。

「Take screenshots」にチェックを入れておくと、ヘルスチェックを行った際にスクリーンショットを撮ってくれます。エラー画面をすぐに把握できるので便利です。
スクリプトエディタについてはデフォルトのままで大丈夫です。

死活監視の間隔を設定する
次に監視の間隔を設定します。スケジュールから監視の間隔を設定することができます。
サイトの死活監視の場合は、継続的に実行するのがオススメです。

平日のみ監視したい場合など細かく指定したい場合は、CRON expressionを使いましょう。CRONの書き方については、こちらを参考にしてください。
・参考:ルールのスケジュール式 – Amazon CloudWatch Events
死活監視が失敗した場合に通知を出す
次にCloudWatchとAmazon SNSで通知の設定を行います。引き続きCanaryの作成画面から設定することができます。
CloudWatchアラームの設定
CloudWatchアラームのオプションから、メトリクス名を「失敗」に設定し、しきい値が1以上になった場合にアラームを出すように設定します。
以下のように設定しましょう。

AmazonSNSでメールに通知を出す
次に、「Canaryの通知を設定する」からメールに通知を出すように設定します。
「新しいトピックの作成」を選択して、メールアドレスを登録します。

入力が完了したら「トピックの作成」をクリックします。AmazonSNSで自動的にトピックが作成されます。
AmazonSNSについてはこちらをご覧ください。
・関連:Amazon SNS(サーバーレスアプリのための pub/sub メッセージングサービス)| AWS
最後に「Canaryを作成」をクリックします。これで設定が完了です。

死活監視の状態をダッシュボードで確認する
Canaryの作成が完了すると、以下のようなダッシュボード画面が作成されます。時間ごとに死活監視が実行されていることが分かります。

CloudWatchを使ってWebサイトの死活監視をする方法まとめ
今回の記事では、CloudWatchを使ってWebサイトの死活監視をする方法について解説しました。手順は以下の通りでした。
- Canaryの作成
- 死活監視するURLを設定する
- 死活監視の間隔を設定する
- CloudWatchとSNSで通知の設定
AWSで死活監視をする際は、CloudWatchのSynthetics Canariesを使うと簡単に設定することができます。
以上で解説を終わります。当ブログでは、このようなAWSに関連する記事を発信しているので、興味のある方は是非ご覧ください。