14
2

CloudWatch RUMでWebアプリをモニタリングする

Last updated at Posted at 2023-12-16

はじめに

※この記事は「LTSグループAdvent Calendar 2023」に参加しています。

はじめまして!私は株式会社エル・ティー・エス株式会社エル・ティー・エス リンクのエンジニアysk_ymdyと申します。

最近AWS Certified Solutions Architect – Associate 認定を取得し、業務でAWS CloudWatch RUMを触る機会があったため概要や使い方等を記していけたらと思います。

CloudWatch RUMとは

ひとことで言うと、Webアプリケーションの動向を可視化しモニタリングする機能です。
具体的に可視化できるものとしては、

  • ページのロード時間
  • javascriptエラー
  • HTTPエラー
  • ユーザーの利用ブラウザ
  • ユーザーのページ遷移履歴

などです。Googleアナリティクスに似てますね。

具体的な嬉しいポイント

  • javascriptエラーが検出できるため、眠っているwarningエラーに気づくことができる
  • ユーザーのページ遷移を追ってユーザー動向を把握できる
  • エラーのあるセッションを把握できる

などが挙げられます。
webアプリケーションを運用、保守、監視していく中であったらいいのに。。。と思った機能がまとめて使えるような形となっています。

使い方

大まかな流れとしては、

  1. CloudWatch RUMにアプリ名やタグなど各種設定をする
  2. CloudWatch RUMから、javascript or Typescript or HTML のコードスニペットを取得する
  3. Webアプリにコードスニペットを貼り付ける
  4. CloudWatch RUMにWebアプリからデータが送信される
  5. 各種情報を確認できる🙌

という流れとなっています。
具体的にどんな手順があるかを以下でご紹介します。

CloudWatchサイドメニューからRUMを選択

Application Signalsアコーディオンの配下にあります。

スクリーンショット 2023-12-13 19.27.30.png

アプリケーションモニターを追加

オレンジ色の「アプリケーションモニターを追加」ボタンから追加します。

スクリーンショット 2023-12-13 19.30.56.png

モニター名とドメインを設定

モニター名は後から編集ができません。
webアプリの環境を分けている場合は、 {環境名}_{アプリ名} などにすると分かりやすいかもですね。

スクリーンショット 2023-12-13 19.35.08.png

RUMで収集するデータを設定

RUMで収集したいデータをチェックボックス形式で選択できます。

スクリーンショット 2023-12-13 19.37.39.png

Cookieを許可するか設定

Cookieを許可せずRUMを使うこともできますが、ユーザーやセッションに基づいたデータは取れなくなってしまいます。

スクリーンショット 2023-12-13 19.40.13.png

セッションサンプルを指定

収集および分析するセッションの割合を指定できます。

スクリーンショット 2023-12-13 19.41.57.png

CloudWatch Logsにデータを保存するかを指定

RUMで収集されたデータは30日間保持されますが、その後削除されます。
データ保持期間を延長したい場合は、CloudWatch Logsにデータを送信する必要があります。

スクリーンショット 2023-12-13 19.42.47.png

Amazon Cognito ID プールを使用してアクセスを制御

  • 新しいIDプールを作成するか
  • 既存のIDプールを使うか
  • 既存のプロバイダーからのプライベート認証を使うか

を選択することができます。
ログインしたユーザーのみが RUM にデータを送信する場合は、既存のプロバイダーからのプライベート認証を選択する必要があります。

スクリーンショット 2023-12-13 19.45.07.png

Webアプリの対象ページを設定

URL単位でデータ収集する対象ページを設定できます。

スクリーンショット 2023-12-13 19.48.30.png

スクリーンショット 2023-12-13 19.49.27.png

スクリーンショット 2023-12-13 19.49.48.png

AWS X-Rayと連携して分析機能を設定

別途料金はかかりますが、AWS X-Rayと連携することで、エンドユーザーから開始するエンドツーエンドのリクエストパスを分析およびデバッグし、より高度なユーザー動向の追跡やエラーの特定ができます。

スクリーンショット 2023-12-13 19.50.22.png

タグを設定

RUM リソースにタグを付けて、このアプリケーションモニターのリソースを併せて表示します。

スクリーンショット 2023-12-13 19.54.50.png

以上でRUM側の設定は終了です。
オレンジ色のアプリケーションモニターを追加ボタンをクリックします。

スクリーンショット 2023-12-13 19.57.30.png

RUMからコードスニペットを取得

画像のように

  • TypeScript
  • JavaScript
  • HTML

の3種類からコードスニペットを選択することができます。

スクリーンショット 2023-12-13 19.56.27.png

※TypeScript と JavaScriptを選択する場合は、NPM から CloudWatch RUM ウェブクライアントパッケージをインストールする必要があります。
コマンドは以下です。

npm install aws-rum-web

RUMから取得したコードスニペットをWebアプリの起動スクリプトに貼り付け

貼り付けをし、デプロイしてください。
これでRUM アプリケーションモニターは完成です。

データの確認

作成したRUM アプリケーションモニターをクリックすると

  • パフォーマンス
  • エラーとセッション
  • Http requests
  • Sessions
  • Events
  • ブラウザとデバイス
  • ユーザージャーニー

が確認できるようになります!(私はまだデータ受信できていませんが、、、)

スクリーンショット 2023-12-13 20.07.19.png

料金

CloudWatchに関しての料金はこちらにまとまっています。
無料お試しや料金見積もり、フォームでのお問い合わせもあるようなので是非ご覧ください。

スクリーンショット 2023-12-13 20.12.30.png

利用可能なリージョン

CloudWatch RUM は現在、下記のリージョンで利用可能です。

  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (オレゴン)
  • 欧州 (フランクフルト)
  • 欧州 (ストックホルム)
  • 欧州 (アイルランド)
  • 欧州 (ロンドン)
  • アジアパシフィック (東京)
  • アジアパシフィック (シンガポール)
  • アジアパシフィック (シドニー)

最新情報はこちらをご覧ください。

さいごに

ご覧いただきありがとうございます。
CloudWatch RUMは、コードスニペットをWebアプリに組み込むだけで各種データをモニタリングできるという実装コストが低いのに有用な良いサービスだなと思いました。
この記事がWebアプリを運用、保守、監視している方の助けに少しでもなれたら幸いです。

参考

14
2
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
14
2