LoginSignup
16
5

More than 3 years have passed since last update.

Amazon CloudWatch Syntheticsで簡単監視入門

Last updated at Posted at 2020-06-27

はじめに

皆さん運用監視してますか?
運用監視はいろいろと手間がかかるので敬遠されがちなんですが、運用監視の仕組みがないと、何かトラブルが起こっても気が付きません。
なので、システムを長期間安定的に稼働させるためには、運用監視の仕組みが不可欠ですよね。
今回はWebサイトの死活監視で利用できるAmazon CloudWatch Synthetics(以下Synthetics)について紹介します。

Amazon CloudWatch Syntheticsとは

詳細な情報は公式のリファレンスを見て頂くとして、ざっくりと概要の説明をします。
Syntheticsを使うとWebサイトやAPIの定期的な死活監視をすることができます。
例えば、正常にWebページを取得できるか、APIを正常に呼び出すことができるか、などを定期的にチェックすることが可能です。

しかも、チェックする部分はLambdaのコードになっているので、自分なりにカスタマイズすることができます。
例えば、このAPIが正常に呼び出されたらこういうレスポンスが返ってくる、というのが決まっていれば、自分でプログラムを書けばチェックすることが可能です。

実際に設定してみる

では、実際に試してみましょう。
Cloudwatchの画面から、「Synthetics」>「Canaryを作成」をクリックします。

Snag_252e212c.png

いろいろな選択肢がありますが、「設計図を使用する」を選択します。
今回はWebページの死活監視をするために、「ハートビートのモニタリング」を選択します。

Snag_2531e009.png

Syntheticsでは、一つの監視単位をCanaryという名前で呼びます。
Canaryの名前と、監視したいWebページのURLを記載します。
また、スクリプトエディタでは実際に実行されるスクリプトが表示されています。
もし、スクリプトのカスタマイズに興味がある方は下記を参照ください。
Canary スクリプト用のライブラリ関数

Snag_253e0970.png

次にスクリプトをどのタイミングで実行するのか、データの保存期間の設定を行います。
今回はテストのため「1回実行」にしてみます。

Snag_253fb5b9.png

次にログ情報などを保存するS3バケットとIAM Roleの設定です。
とりあえず、デフォルトで設定します。

Snag_25416686.png

最後にCloudwatchアラームの設定を行います。
設定した閾値を超えた場合(下回った場合)に、指定したSNSトピックに通知します。
最後に「Canaryを作成」をクリックすれば、設定は完了です。

Snag_254f1f47.png

監視状況を確認してみる

作成したCanaryは自動実行されるので、内容を確認してみます。
今回監視対象としたWebページは実際に存在するので、結果は成功として記録されます。
また、「スクリーンショット」、「HARファイル」、「ログ」も確認することが可能です。

Snag_255896fc.png

「スクリーンショット」タブでは、画面のスクリーンショットを確認することができ、「HARファイル」タブではHARファイルの内容を確認することができ、「ログ」タブでは、実際にスクリプトが実行された際のログを確認することが可能です。

ちなみに、もしWebサイトに正常にアクセスできない場合は、エラーになります。

Snag_256132c8.png

ChatbotとSlackを連携している場合は、下記の様なメッセージが届きます。

Snag_2561b834.png

APIエンドポイントのテストをする場合

簡単にAPIエンドポイントの場合について紹介します。
設計図でAPI Canaryを選択します。
そして、HTTPメソッドの選択、ヘッダーや送信するデータの設定を行います。

Snag_2566197b.png

スクリプトエディタの内容も「ハートビートのモニタリング」の場合とは少し違いますね。
API呼び出しが200で成功しているかどうかは簡単に確認できそうです。

Snag_2566d4ad.png

最後に

Webサイトの死活監視やAPIエンドポイントの死活監視は重要だけれども、いざ仕組みを作ろうと思うと結構めんどくさいことが多いです。
ですが、Syntheticsを使うと簡単に実現できるかことがお分かりいただけたのではないでしょうか。
証明書切れでWebページにつながらなくなったり、APIのデプロイで正常に動かなくなったり、ということを検知することができるので、非常に有益なサービスだと思います。
料金もそこまで高額ではないので、皆さんぜひ使ってみてください。

参考

模擬モニタリングの使用
Synthetics Canary のセキュリティ上の考慮事項

16
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
5