はじめに
※この記事は「LTSグループAdvent Calendar 2023」に参加しています。
はじめまして!私は株式会社エル・ティー・エス、株式会社エル・ティー・エス リンクのエンジニアysk_ymdyと申します。
最近AWS Certified Solutions Architect – Associate 認定を取得し、業務でAWS CloudWatch RUMを触る機会があったため概要や使い方等を記していけたらと思います。
CloudWatch RUMとは
ひとことで言うと、Webアプリケーションの動向を可視化しモニタリングする機能です。
具体的に可視化できるものとしては、
- ページのロード時間
- javascriptエラー
- HTTPエラー
- ユーザーの利用ブラウザ
- ユーザーのページ遷移履歴
などです。Googleアナリティクスに似てますね。
具体的な嬉しいポイント
- javascriptエラーが検出できるため、眠っているwarningエラーに気づくことができる
- ユーザーのページ遷移を追ってユーザー動向を把握できる
- エラーのあるセッションを把握できる
などが挙げられます。
webアプリケーションを運用、保守、監視していく中であったらいいのに。。。と思った機能がまとめて使えるような形となっています。
使い方
大まかな流れとしては、
- CloudWatch RUMにアプリ名やタグなど各種設定をする
- CloudWatch RUMから、javascript or Typescript or HTML のコードスニペットを取得する
- Webアプリにコードスニペットを貼り付ける
- CloudWatch RUMにWebアプリからデータが送信される
- 各種情報を確認できる🙌
という流れとなっています。
具体的にどんな手順があるかを以下でご紹介します。
CloudWatchサイドメニューからRUMを選択
Application Signalsアコーディオンの配下にあります。
アプリケーションモニターを追加
オレンジ色の「アプリケーションモニターを追加」ボタンから追加します。
モニター名とドメインを設定
モニター名は後から編集ができません。
webアプリの環境を分けている場合は、 {環境名}_{アプリ名} などにすると分かりやすいかもですね。
RUMで収集するデータを設定
RUMで収集したいデータをチェックボックス形式で選択できます。
Cookieを許可するか設定
Cookieを許可せずRUMを使うこともできますが、ユーザーやセッションに基づいたデータは取れなくなってしまいます。
セッションサンプルを指定
収集および分析するセッションの割合を指定できます。
CloudWatch Logsにデータを保存するかを指定
RUMで収集されたデータは30日間保持されますが、その後削除されます。
データ保持期間を延長したい場合は、CloudWatch Logsにデータを送信する必要があります。
Amazon Cognito ID プールを使用してアクセスを制御
- 新しいIDプールを作成するか
- 既存のIDプールを使うか
- 既存のプロバイダーからのプライベート認証を使うか
を選択することができます。
ログインしたユーザーのみが RUM にデータを送信する場合は、既存のプロバイダーからのプライベート認証を選択する必要があります。
Webアプリの対象ページを設定
URL単位でデータ収集する対象ページを設定できます。
AWS X-Rayと連携して分析機能を設定
別途料金はかかりますが、AWS X-Rayと連携することで、エンドユーザーから開始するエンドツーエンドのリクエストパスを分析およびデバッグし、より高度なユーザー動向の追跡やエラーの特定ができます。
タグを設定
RUM リソースにタグを付けて、このアプリケーションモニターのリソースを併せて表示します。
以上でRUM側の設定は終了です。
オレンジ色のアプリケーションモニターを追加ボタンをクリックします。
RUMからコードスニペットを取得
画像のように
- TypeScript
- JavaScript
- HTML
の3種類からコードスニペットを選択することができます。
※TypeScript と JavaScriptを選択する場合は、NPM から CloudWatch RUM ウェブクライアントパッケージをインストールする必要があります。
コマンドは以下です。
npm install aws-rum-web
RUMから取得したコードスニペットをWebアプリの起動スクリプトに貼り付け
貼り付けをし、デプロイしてください。
これでRUM アプリケーションモニターは完成です。
データの確認
作成したRUM アプリケーションモニターをクリックすると
- パフォーマンス
- エラーとセッション
- Http requests
- Sessions
- Events
- ブラウザとデバイス
- ユーザージャーニー
が確認できるようになります!(私はまだデータ受信できていませんが、、、)
料金
CloudWatchに関しての料金はこちらにまとまっています。
無料お試しや料金見積もり、フォームでのお問い合わせもあるようなので是非ご覧ください。
利用可能なリージョン
CloudWatch RUM は現在、下記のリージョンで利用可能です。
- 米国東部 (バージニア北部)
- 米国東部 (オハイオ)
- 米国西部 (オレゴン)
- 欧州 (フランクフルト)
- 欧州 (ストックホルム)
- 欧州 (アイルランド)
- 欧州 (ロンドン)
- アジアパシフィック (東京)
- アジアパシフィック (シンガポール)
- アジアパシフィック (シドニー)
最新情報はこちらをご覧ください。
さいごに
ご覧いただきありがとうございます。
CloudWatch RUMは、コードスニペットをWebアプリに組み込むだけで各種データをモニタリングできるという実装コストが低いのに有用な良いサービスだなと思いました。
この記事がWebアプリを運用、保守、監視している方の助けに少しでもなれたら幸いです。
参考
- https://dev.classmethod.jp/articles/cloudwatch-rum-overview/
- https://qiita.com/yu-yama-sra/items/c7f7ca0e45d75ba3908c
- https://aws.amazon.com/jp/blogs/news/cloudwatch-rum/
- https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html
- https://aws.amazon.com/jp/cloudwatch/pricing/