Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

フルスタックオブザーバビリティを AWSで実現する方法 / How to achieve fu...

SMS tech
August 23, 2024

フルスタックオブザーバビリティを AWSで実現する方法 / How to achieve full-stack Observability with AWS (ja)

SMS tech

August 23, 2024
Tweet

More Decks by SMS tech

Other Decks in Technology

Transcript

  1. © SMS Co., Ltd. 加我 貴志 (株式会社エス・エム・エス) JAWS PANKRATION 2024

    フルスタックオブザーバビリティを AWSで実現する方法
  2. © SMS Co., Ltd. 1. 2. 3. 4. 自己紹介 CNCFから学ぶオブザーバビリティ

    Amazon CloudWatchで実現する フルスタックオブザーバビリティ まとめ 目次
  3. © SMS Co., Ltd. 自己紹介 • 加我 貴志 (@TAKA_0411) •

    株式会社エス・エム・エス SRE • AWS Community Builder (Cloud Operations, 2023 -) • Media-JAWSの運営やっています
  4. © SMS Co., Ltd. CNCFとは Cloud Native Computing Foundation (CNCF)

    https://www.cncf.io/ - Cloud Native Computing Foundation - Linux Foundationの一員として2015年に設立 - 成長中のクラウドネイティブプロジェクトのサポートなどを提供 - Observability Whitepaper を作成
  5. © SMS Co., Ltd. CNCFと代表的なプロジェクト Graduated and Incubating Projects https://www.cncf.io/projects/

    - Argo (Continuous Integration & Delivery) - Fluentd (Observability) - Istio (Service Mesh) - Kubernetes (Scheduling & Orchestration) - Prometheus (Observability) - OpenTelemetry (Observability)
  6. © SMS Co., Ltd. システムの状態を観察? Telemetry correlation for deeper insights

    https://ubuntu.com/observability/what-is-observability システムが出力する様々なデータを 観察・分析することで、システムの内部状態を 推定し、対処することができるようになる
  7. © SMS Co., Ltd. システムの状態を観察 : モニタリングとオブザーバビリティ モニタリング - 特定の条件や閾値を設定し、システムの状態を定期的にチェックするのが目的。

    - システムエラーの 「いつ」 「何が」 発生したのかを明らかにする。 オブザーバビリティ - システムの内部状況を包括的に把握し、問題の予防や迅速な原因特定を目指す。 - システムエラーの 「なぜ」 「どのように」 発生したのかを明らかにする。
  8. © SMS Co., Ltd. システムの状態を観察 : 出力データの分析 Telemetry correlation for

    deeper insights https://ubuntu.com/observability/what-is-observability システムが出力する様々なデータ を 観察・分析することで、システムの内部状態を 推定し、対処することができるようになる
  9. © SMS Co., Ltd. 出力データの分析 : テレメトリーデータ テレメトリーデータ - システムの状態を包括的に把握するための重要な要素

    - システムの異常の検知や解決、パフォーマンスの最適化などを 目的として収集される - CNCFでは主要なシグナルとしてMetrics, Logs, Tracesを定義 - 加えてProfiles, Dumpsといったシグナルも重要
  10. © SMS Co., Ltd. テレメトリーデータ メトリクス - 様々な活動のデータを数値化したもの - 既に数値化されたデータ

    (CPU使用率やメモリ使用率) - 数値として分解されたデータ (リクエスト数) Observability Whitepaper : Metrics https://github.com/cncf/tag-observability/blob/main/whitepaper.md
  11. © SMS Co., Ltd. テレメトリーデータ ログ - OSやアプリケーション、サーバーなどで発生する アクティビティや操作を記述するもの -

    システムログ - アプリケーションログ - セキュリティログ - 監査ログ Observability Whitepaper : Logs https://github.com/cncf/tag-observability/blob/main/whitepaper.md
  12. © SMS Co., Ltd. 例 : DatadogにおけるTraces Observability Whitepaper :

    Traces https://github.com/cncf/tag-observability/blob/main/whitepaper.md - 横軸 : 時間軸 - 縦軸 : 呼び出し関係
  13. © SMS Co., Ltd. テレメトリーデータ プロファイル - ランタイムの中のスタックトレースのサンプリング - CPU

    Profiler, Heap Profiler, IO profiler... - プログラム言語特有のProfiler - pprof (Go), Xdebug (PHP) ダンプ - ある時点でのスナップショット - core dump, crash dump
  14. © SMS Co., Ltd. ここまでのまとめ - CNCFのObservability Whitepaperにより Observabilityの考え方や実践方法を理解することができる -

    CNCFによるオブザーバビリティの定義は 「人間や機械がシステムの状態を観察・理解し行動できるシステムの機能」 - オブザーバビリティを実現するには下記のテレメトリーデータが重要 Metrics, Logs, Traces, Profiles, Dumps
  15. © SMS Co., Ltd. AWSにおけるオブザーバビリティサービス Amazon CloudWatch - AWSのサービスなどから主要なテレメトリーデータを収集 -

    CloudWatch Metrics - CloudWatch Logs - CloudWatch Application Signals - データ収集以外にも多数の機能がある
  16. © SMS Co., Ltd. Amazon CloudWatchの機能一覧 Amazon CloudWatchの概要と基本 : AWS

    Black Belt Online Seminar https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonCloudWatch_0330_v1.pdf 2023年3月の資料なので Application Signals (Trace)はまだない
  17. © SMS Co., Ltd. テーマ : シンプルなWebサービス フロントエンド (ユーザー体験) バックエンド

    (インフラ) ビルド / デプロイ パイプライン セキュリティ 今回はフロントエンドと バックエンドにフォーカス
  18. © SMS Co., Ltd. 1. フロントエンドモニタリング フロントエンド (ユーザー体験) ビルド /

    デプロイ パイプライン セキュリティ バックエンド (インフラ)
  19. © SMS Co., Ltd. 1. フロントエンドモニタリング ユーザーがブラウザ上でRUMの JavaScriptを実行することで メトリクスやログなどを取得。 CloudFrontが出力するメトリクスや

    リアルタイムログをCloudWatchへ連携。 ヘッドレスブラウザがエンドポイント (URL) にアクセスすることでメトリクスやトレース、 スクリーンショットなどを取得。
  20. © SMS Co., Ltd. 2. バックエンドモニタリング フロントエンド (ユーザー体験) ビルド /

    デプロイ パイプライン セキュリティ バックエンド (インフラ)
  21. © SMS Co., Ltd. 2. バックエンドモニタリング ALBやFargateが出力する メトリクスをCloudWatchへ連携。 トレースデータをCloudWatchへ連携。 (Application

    Signalsによる OpenTelemetryの自動計装) データストアのサービスが出力する メトリクスをCloudWatchへ連携。 タスクのログやDBのログを CloudWatch Logsへ連携。
  22. © SMS Co., Ltd. AWSを利用したフルスタックオブザーバビリティについて - まずはCNCFのObservability Whitepaperを読んで Observabilityの考え方やテレメトリーデータについて理解する -

    ワークロードがAWSにある場合はAmazon CloudWatchを利用し、 テレメトリーデータの収集と分析を進める - ProfilesやDumpsの取得に課題はあるが、 Amazon CloudWatchでのフルスタックオブザーバビリティは実現可能
  23. © SMS Co., Ltd. Amazon CloudWatch vs Observability SaaS Amazon

    CloudWatch Observability SaaS 導入 AWS上にワークロードがあればすぐに利用でき る。 アカウントのサインアップや初期設定など、 使えるまでに若干のタイムラグが発生。 機能 機能の追加はされているがSaaSほどの ペースではない。 機能の追加が多く、トレンドを先取りした便利な サービスが多い。フロントエンドやモバイルの可視化ま で幅広く対応。 他サービス との連携 SaaSなどとの連携が必要であれば、 自分で設定・構築する必要がある。 様々なサービスとの連携が可能なものが多く、 1つのObservability Platformで多くの データをモニタリングすることが可能。 コスト 主要なテレメトリーデータを低価格で収集 することができ、コスト分析にも優れている。 フロントエンドやモバイルのTraces、Logsはコスト急 増の可能性がある。CloudWatchからのデータ転送 を利用するとAWS側のコストも増加しがち。 サポート AWSサポートによる手厚いフォローが 期待できる。 英語のみの対応など、場合によりサポート品質に ばらつきがある可能性がある。