Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSを用いたフロントエンドモニタリング入門

 AWSを用いたフロントエンドモニタリング入門

サービスの安定的な提供において、アプリケーションのモニタリングは非常に大切な要素です。 Single Page Application (SPA)やServer Side Rendering (SSR) での開発が一般的になってきた昨今、サーバサイドだけでなくフロントエンドのモニタリングの重要性も増しています。 本セッションでは、弊社(ウェルスナビ株式会社)が取り組んでいるAWSのテクノロジーを用いたフロントエンドのモニタリング手法についてご紹介いたします。

Takuya Mizuma

October 08, 2022
Tweet

More Decks by Takuya Mizuma

Other Decks in Programming

Transcript

  1. 自己紹介 ウェルスナビ株式会社 ・水馬 拓也 (みずま たくや) ・全自動資産運用サービス の開発に従事 ・前職 Amazon

    Web Service Japan / Solutions Architect https://tech.wealtnavi.com Twitter: @mizuma_t [好きな技術] ・AWS Amplify / Serverless 関連 ・React.js / Typescript / Next.js
  2. サーバサイドモニタリングとフロントエンドモニタリングの違い Ø ユーザ毎にアプリケーションが動作する環境が異なる → 環境ごとにアプリケーションの挙動が異なる可能性について考慮する必要がある → 全てのユーザが最新versionのブラウザや端末を使っているわけではない Ø フロントエンドで発生したエラーやイベント情報を*確実に*運用者に届ける 必要がある

    → 適切にエラーハンドリングが行われなかった場合、エラーが発生したことをサービス運用者が検 知できない可能性がある Ø フロントエンドに適切な権限を与える必要がある → 仮に Amazon CloudWatch に出力するとして、あらゆるロググループにアクセスさせてはいけない
  3. エラーログのモニタリング Ø エラーログモニタリングの目的 アプリケーション内で発生した異常を運用者が確実に検知できること l ログの出力 → Amazon CloudWatch Logs

    → Amplify Libraries → 例1) サーバサイドから5xxレスポンスを受け取った → 例2) サードパーティライブラリが意図せぬエラーを出力した Ø 用いるAWSサービスと用途 l 権限の付与 → Amazon Cognito Identity Pool l 運用者への通知 → AWS ChatBot から Slack に通知
  4. ユーザエクスペリエンスのモニタリング Ø ユーザエクスペリエンスモニタリングの目的 (※ 公式Blogから抜粋) ύϑΥʔϚϯεΛ೺Ѳ͠ɺϢʔβʔʹ࠷దͳΤΫεϖϦΤϯεΛఏڙ͢Δ͜ͱΛ໨ඪͱ͍ͯ͠·͢ɻ ϒϥ΢βͷछྨɺϒϥ΢βͷઃఆɺϢʔβʔͷॴࡏ஍ɺ઀ଓͳͲɺؔ࿈͢Δม਺ͷ਺͕ଟ͍ͨΊɺ ݱࡏ࣮ߦͰ͖Δͷ͸໛ٖςετ·ͰͰ͢ɻϢʔβʔʹͱͬͯຊ౰ʹॏཁͳͷ͸ɺϢʔβʔʹ΋ͨΒ ͞ΕΔΤΫεϖϦΤϯεͰ͢ɻ l

    エクスペリエンス情報の出力 Ø 用いるAWSサービスと用途 ・ アプリケーションの健全性を示す指標 (Core Web Vitals) ・ アプリケーションでハンドリングできなかったエラーログ ・ ユーザ属性情報の把握 (利用端末、OS、ユーザの位置情報 .. 等) → Amazon CloudWatch Realtime User Monitoring (RUM) 新機能 – Amazon CloudWatch RUM をご紹介 https://aws.amazon.com/jp/blogs/news/cloudwatch-rum/
  5. ユーザエクスペリエンスのモニタリング ~ 利用開始方法 ~ Ø npm から aws-rum-web ライブラリ をインストール

    Ø マネジメントコンソールから発行さ れるテンプレートのコードをアプリ ケーションに貼り付ける 以上!! 導入は非常に簡単
  6. ユーザエクスペリエンスのモニタリング ~ サイトの健全性 ~ Ø Largest contentful paint (LCP) Ø

    First Input Delay (FID) Ø Cumulative layout shift (CLS) → 最も有意義なコンテンツの表示時間 → 初回入力ができるまでの時間 → ページ表示時の視覚的な安定性を 示す指標 それぞれ Positive / Tolerable / Frustrating の3段階で評価 Core Web Vitals の各指標を取得可能 https://developers-jp.googleblog.com/2020/05/web-vitals.html Web Vitals の概要: サイトの健全性を示す重要指標