この記事の目次
AWSのCloudWatch Syntheticsとは
Amazon Web Services(AWS)のCloudWatch Syntheticsは、リソースのエンドポイントをモニタリングするサービスで、CloudWatchの機能の一種です。
Canaryと呼ばれるスクリプトを作成し、エンドポイントのシステムを常時モニタリングおよびテストします。異常が発見されるとアラートを発信する機能があり、問題の早期発見および解決に役立ちます。
CloudWatchとは
CloudWatchは、AWS上のリソースをモニタリングするサービスです。
リソースのログやメトリクス、イベントなどの情報を収集し、使用状況を追跡します。メトリクスが一定の値(しきい値)を超えると通知を送ったり、Auto Scalingを起動して容量を自動調整したりと、さまざまな応用ができます。
AWSのCloudWatch Syntheticsの特徴
この項目では、AWSのCloudWatch Syntheticsの特徴についてご紹介します。
エンドポイントにおける動作を常時チェックし、システムエラーを素早く検出する他、サイバー攻撃への対策もできます。さらに、問題解決をサポートする機能も搭載しており、多方面からモニタリングを強化します。
特徴1:24時間モニタリングできる
Syntheticsは、24時間にわたってモニタリングができます。
リソースにユーザーからのトラフィックが来ない状態でも稼働を続け、モニタリングやテストを行います。予期しない動作を検知すると、アラートを発信してその旨を知らせます。
これらの機能により、リソースの問題を素早く発見・対処し、パフォーマンスを維持できます。
特徴2:さまざまな動作をモニタリングできる
Syntheticsは、さまざまな動作をモニタリングできます。
例として、ページロード、レイテンシー、リンク、トランザクション、チェックアウトフローなどがあります。ページをロードするとエラーが起きる、レイテンシーが大きい、リンクが無効になっている、といった問題が見つかると通知します。
この他、REST API、URL、ウェブコンテンツなどのモニタリングもサポートしており、フィッシング、コードインジェクション、クロスサイトスクリプティング(XSS)といったサイバー攻撃にも対応できます。
特徴3:問題解決をサポート
Syntheticsは、問題解決をサポートする機能があります。
Canaryが実行されると、結果と共にスクリーンショット、HTTP Archive(HAR)ファイル、ログファイルを記録・表示します。ページの表示状態や、HTTPリクエストのログ、応答時間などのデータを一目でチェックでき、問題解決の資料として役立てられます。
特徴4:5種類のCanary設計図
Syntheticsには、Canaryの設計図があらかじめ用意されています。
ハートビートモニター、API Canary、リンク切れチェッカー、Canary Recorder、GUI ワークフローの5種類が存在します。チェックしたい項目や需要に合わせて、最適なプロセスでモニタリングやテストができます。
なお、設計図を使用せず、独自に制作したスクリプトをインポートすることもできます。また、エディタを使って上記の設計図をカスタマイズすることも可能です。
特徴5:CloudWatch ServiceLensによる可視性の向上
CloudWatch ServiceLensは、リソースの監視データを一元表示する機能です。
AWS X-Rayを用いて、メトリクスやログなどのデータを収集し、1つの画面にまとめて表示します。これにより、データの可視性を高め、問題を発見しやすくしたり、データを整理して理解しやすくしたりできます。
SyntheticsはServiceLensと統合されており、Canaryのデータを一元表示します。ボトルネックとなっている箇所を特定してパフォーマンスを高めたり、影響を受けるユーザーを調べたりできるため、さまざまな形で活用可能です。
特徴6:EventBridgeによるCanaryのモニタリング
EventBridgeは、ステータス変更に関するイベントを管理するサービスです。
ルールに従って、イベントをリアルタイムで送信したり、受け取ったイベントに応じてアクションを実行したりできます。
SyntheticsはEventBridgeと統合されており、Canaryで発生するイベントをモニタリングします。
例えば、ステータスが変更されたり、実行が完了したりすると、EventBridgeにイベントを送ります。それに応じて、Simple Notification Service(SNS)経由で通知を発信する、Lambda関数を呼び出して何らかの処理を加えるといったアクションをトリガーできます。
AWSのCloudWatch Syntheticsの開始方法
この項目では、AWSのCloudWatch Syntheticsの開始方法ならびにCanaryの作成方法について、流れを簡単にご紹介します。
大まかには、スクリプトの設定→詳細設定→作成の3ステップになります。
スクリプトの設定
最初に、スクリプトを設定します。
AWS製の設計図を使用するか、独自のスクリプトをインポートします。インポートする時は、ファイルから直接アップロードするか、 Simple Storage Service(S3)バケットに格納されているものを読み込みます。
S3バケットから読み込む場合は、バケットとCanaryが同じリージョンに存在する必要があります。あらかじめ確認しておきましょう。
なお、作成項目の一つにスクリプトエディタがあり、ここでスクリプトを編集できます。AWS製の設計図も編集可能です。
詳細設定
次に、Canaryの詳細設定を行います。
名前、テスト先のURL、スケジュール、実行データの保存先、IAMロールなどを設定します。必要に応じて、エントリポイントや環境変数、アラーム、タグ、X-Rayの有効/無効なども入力していきます。
Canaryの作成
すべての設定を終えたら、Canaryを作成します。
作成を開始すると、それに伴ってIAMロール、IAMポリシー、S3バケット、アラーム、Lambda関数、CloudWatch Logs ロググループも同時に作成されます。なお、設定によって作成されるリソースは異なります。
作成が完了すれば、それを使ってモニタリングやテストを開始できるようになります。正常に動作しているか確認しておきましょう。
AWSのCloudWatch Syntheticsの料金
AWSのCloudWatch Syntheticsの料金は、Canaryの実行回数によって決定します。また、使用するリージョンによって1回ごとの料金は異なります。
Canaryを1回実行するごとに0.0012USDの料金が発生して、無料利用枠も存在し、1カ月あたり100回まで無料で実行できます。
なお、Canaryを実行すると、その度にLambdaやS3なども起動されます。これらに対する料金も必要になるので、見積もりの際は注意しましょう。
詳しくは、公式ページの料金表をご覧ください。
出典:Amazon CloudWatch の料金|aws
参照:https://aws.amazon.com/jp/cloudwatch/pricing/
AWSのCloudWatch Syntheticsを活用しよう
この記事では、AWSのCloudWatch Syntheticsについてご紹介しました。
リソースのエンドポイントをモニタリングおよびテストし、異常があれば通知を発信する機能により、問題を早期に解決できます。それ以外にも、サイバー攻撃への対策、スクリーンショットやHARファイルによる問題解決のサポートなど、さまざまな機能があります。
大元であるCloudWatchについても合わせて理解し、AWSクラウドのモニタリング体制を強化していきましょう。