Amazon CloudWatch RUM
Web アプリケーションのリアルユーザーモニタリングでクライアント側のパフォーマンスとエラーを収集するサービス
何ができるか
Amazon CloudWatch RUM (Real User Monitoring) は、実際のユーザーが Web アプリケーションを利用する際のパフォーマンスデータとエラー情報をブラウザから収集するサービスです。ページの読み込み時間、JavaScript エラー、HTTP エラー、Core Web Vitals (LCP、FID、CLS) などのメトリクスをリアルタイムで収集・可視化します。サーバー側の監視では把握できない、ユーザーが実際に体験しているパフォーマンスを測定できます。
どのような場面で使うか
Web アプリケーションのページ読み込みが遅いというユーザーからの報告を受けて、どのページ、どのブラウザ、どの地域で問題が発生しているかを特定する場面で活用されています。また、デプロイ後にクライアント側の JavaScript エラーが増加していないかを監視したり、Core Web Vitals のスコアを継続的にトラッキングして SEO への影響を評価する場面でも利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
レストランの覆面調査員に例えるとわかりやすいでしょう。厨房 (サーバー側) の監視カメラだけでは、お客さん (ユーザー) が実際にどのような体験をしているかはわかりません。覆面調査員 (RUM) は実際にお客さんとして来店し、注文から料理が届くまでの待ち時間、料理の温度、店内の快適さなど、お客さん目線の体験を報告してくれます。
CloudWatch RUM とは
この記事は約 2 分で読めます。 Amazon CloudWatch RUM は、Web アプリケーションのクライアント側パフォーマンスを監視するサービスです。従来のサーバー側モニタリングでは、サーバーのレスポンスタイムは測定できても、ブラウザでのレンダリング時間や JavaScript の実行時間は把握できません。RUM は軽量な JavaScript スニペットを Web ページに埋め込み、実際のユーザーのブラウザからパフォーマンスデータを収集します。
収集されるデータ
CloudWatch RUM は、ページロードのパフォーマンス (読み込み時間、TTFB、DOM 構築時間)、JavaScript エラー (未処理の例外、コンソールエラー)、HTTP エラー (4xx、5xx レスポンス)、Core Web Vitals (LCP、FID、CLS) を収集します。これらのデータはブラウザの種類、OS、デバイスタイプ、地理的な位置情報とともに記録されるため、「Chrome の iOS ユーザーだけでエラーが多発している」といった問題の切り分けが可能です。
X-Ray との連携
CloudWatch RUM は AWS X-Ray と連携して、クライアント側からサーバー側までのエンドツーエンドのトレースを実現できます。ユーザーのブラウザで発生したリクエストが、API Gateway、Lambda、DynamoDB などのバックエンドサービスをどのように経由し、どこでレイテンシが発生しているかを 1 つのトレースで可視化できます。フロントエンドとバックエンドの問題を統合的に分析できます。
はじめかた
CloudWatch RUM を使い始めるには、CloudWatch コンソールの「RUM」セクションでアプリケーションモニターを作成します。アプリケーション名とドメインを指定すると、JavaScript のコードスニペットが生成されます。このスニペットを Web ページの head タグ内に埋め込むだけで、データ収集が開始されます。サンプリングレートを設定して、収集するセッションの割合を調整できます。
Azure・オンプレミスとの比較
AWS の優位点
- CloudWatch や X-Ray との統合により、クライアント側からサーバー側までのエンドツーエンドのパフォーマンス分析を AWS の監視基盤内で完結できる
- JavaScript スニペットの埋め込みだけで導入でき、SDK のインストールやビルドプロセスの変更が不要
- CloudWatch のアラーム機能と連携して、Core Web Vitals の悪化やエラー率の増加を自動検知し、即座に通知を受け取れる
注意点
- RUM はデータイベント数に応じた従量課金。サンプリングレートを 100% にするとコストが高くなるため、トラフィック量に応じて適切なサンプリングレートを設定すること
- JavaScript スニペットの埋め込みにより、ページの読み込みにわずかなオーバーヘッドが発生する。パフォーマンスへの影響は軽微だが、スニペットは非同期で読み込まれることを確認すること
- 収集されるデータにはユーザーの IP アドレスや地理情報が含まれるため、プライバシーポリシーに RUM の利用を記載することを検討すること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。