フルスタックオブザーバビリティを AWSで実現する方法 / How to achieve full-stack Observability with AWS (ja)
by
SMS tech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© SMS Co., Ltd. 加我 貴志 (株式会社エス・エム・エス) JAWS PANKRATION 2024 フルスタックオブザーバビリティを AWSで実現する方法
Slide 2
Slide 2 text
© SMS Co., Ltd. 1. 2. 3. 4. 自己紹介 CNCFから学ぶオブザーバビリティ Amazon CloudWatchで実現する フルスタックオブザーバビリティ まとめ 目次
Slide 3
Slide 3 text
© SMS Co., Ltd. 01 自己紹介
Slide 4
Slide 4 text
© SMS Co., Ltd. 自己紹介 ● 加我 貴志 (@TAKA_0411) ● 株式会社エス・エム・エス SRE ● AWS Community Builder (Cloud Operations, 2023 -) ● Media-JAWSの運営やっています
Slide 5
Slide 5 text
© SMS Co., Ltd. 自己紹介
Slide 6
Slide 6 text
© SMS Co., Ltd. 02 CNCFで学ぶオブザーバビリティ
Slide 7
Slide 7 text
© SMS Co., Ltd. CNCFとは Cloud Native Computing Foundation (CNCF) https://www.cncf.io/ - Cloud Native Computing Foundation - Linux Foundationの一員として2015年に設立 - 成長中のクラウドネイティブプロジェクトのサポートなどを提供 - Observability Whitepaper を作成
Slide 8
Slide 8 text
© 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)
Slide 9
Slide 9 text
© SMS Co., Ltd. CNCFが定義するオブザーバビリティ 「人間や機械がシステムの状態を観察・理解し 行動することができるシステムの機能」 Observability Whitepaper : What is Observability? https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Slide 10
Slide 10 text
© SMS Co., Ltd. システムの状態を観察? Telemetry correlation for deeper insights https://ubuntu.com/observability/what-is-observability システムが出力する様々なデータを 観察・分析することで、システムの内部状態を 推定し、対処することができるようになる
Slide 11
Slide 11 text
© SMS Co., Ltd. システムの状態を観察 : モニタリングとオブザーバビリティ モニタリング - 特定の条件や閾値を設定し、システムの状態を定期的にチェックするのが目的。 - システムエラーの 「いつ」 「何が」 発生したのかを明らかにする。 オブザーバビリティ - システムの内部状況を包括的に把握し、問題の予防や迅速な原因特定を目指す。 - システムエラーの 「なぜ」 「どのように」 発生したのかを明らかにする。
Slide 12
Slide 12 text
© SMS Co., Ltd. システムの状態を観察 : 出力データの分析 Telemetry correlation for deeper insights https://ubuntu.com/observability/what-is-observability システムが出力する様々なデータ を 観察・分析することで、システムの内部状態を 推定し、対処することができるようになる
Slide 13
Slide 13 text
© SMS Co., Ltd. 出力データの分析 : テレメトリーデータ テレメトリーデータ - システムの状態を包括的に把握するための重要な要素 - システムの異常の検知や解決、パフォーマンスの最適化などを 目的として収集される - CNCFでは主要なシグナルとしてMetrics, Logs, Tracesを定義 - 加えてProfiles, Dumpsといったシグナルも重要
Slide 14
Slide 14 text
© SMS Co., Ltd. CNCFが定めるテレメトリーデータと主要なシグナル Observability Whitepaper : Observability Signals https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Slide 15
Slide 15 text
© SMS Co., Ltd. テレメトリーデータ メトリクス - 様々な活動のデータを数値化したもの - 既に数値化されたデータ (CPU使用率やメモリ使用率) - 数値として分解されたデータ (リクエスト数) Observability Whitepaper : Metrics https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Slide 16
Slide 16 text
© SMS Co., Ltd. テレメトリーデータ ログ - OSやアプリケーション、サーバーなどで発生する アクティビティや操作を記述するもの - システムログ - アプリケーションログ - セキュリティログ - 監査ログ Observability Whitepaper : Logs https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Slide 17
Slide 17 text
© SMS Co., Ltd. テレメトリーデータ トレース - エンドユーザーによって開始されたリクエストなどの 分散トランザクション中に何が起こったのかを記述したもの Observability Whitepaper : Traces https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Slide 18
Slide 18 text
© SMS Co., Ltd. 例 : DatadogにおけるTraces Observability Whitepaper : Traces https://github.com/cncf/tag-observability/blob/main/whitepaper.md - 横軸 : 時間軸 - 縦軸 : 呼び出し関係
Slide 19
Slide 19 text
© SMS Co., Ltd. テレメトリーデータ プロファイル - ランタイムの中のスタックトレースのサンプリング - CPU Profiler, Heap Profiler, IO profiler... - プログラム言語特有のProfiler - pprof (Go), Xdebug (PHP) ダンプ - ある時点でのスナップショット - core dump, crash dump
Slide 20
Slide 20 text
© SMS Co., Ltd. ここまでのまとめ - CNCFのObservability Whitepaperにより Observabilityの考え方や実践方法を理解することができる - CNCFによるオブザーバビリティの定義は 「人間や機械がシステムの状態を観察・理解し行動できるシステムの機能」 - オブザーバビリティを実現するには下記のテレメトリーデータが重要 Metrics, Logs, Traces, Profiles, Dumps
Slide 21
Slide 21 text
© SMS Co., Ltd. 03 Amazon CloudWatchで実現する フルスタックオブザーバビリティ
Slide 22
Slide 22 text
© SMS Co., Ltd. フルスタックオブザーバビリティの定義 フロントエンド、バックエンド、インフラストラクチャに加えて エンドユーザーの体験 (UX) やアプリケーションコード、 セキュリティといったサービスのスタック全体を監視する オブザーバビリティソリューションのこと(※) (※) オブザーバビリティSaaSを提供するベンダーにより定義が異なる
Slide 23
Slide 23 text
© SMS Co., Ltd. フルスタックオブザーバビリティ (Splunk) シスコとSplunk、組織全体を可視化するフルスタックのオブザーバビリティを実現 https://www.splunk.com/ja_jp/blog/conf-splunklive/cisco-and-splunk-bring-full-stack-observability-to-the-entire-enterprise.html
Slide 24
Slide 24 text
© SMS Co., Ltd. フルスタックオブザーバビリティ (Dynatrace) AIにより“答え”を提供 エンタープライズシステムをフルスタックで監視する ソフトウェアインテリジェンス https://www.ctc-g.co.jp/solutions/dynatrace/
Slide 25
Slide 25 text
© SMS Co., Ltd. AWSにおけるオブザーバビリティサービス
Slide 26
Slide 26 text
© SMS Co., Ltd. AWSにおけるオブザーバビリティサービス Amazon CloudWatch - AWSのサービスなどから主要なテレメトリーデータを収集 - CloudWatch Metrics - CloudWatch Logs - CloudWatch Application Signals - データ収集以外にも多数の機能がある
Slide 27
Slide 27 text
© 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)はまだない
Slide 28
Slide 28 text
© SMS Co., Ltd. Amazon CloudWatchを利用した フルスタックオブザーバビリティの 実現方法
Slide 29
Slide 29 text
© SMS Co., Ltd. テーマ : シンプルなWebサービス フロントエンド (ユーザー体験) バックエンド (インフラ) ビルド / デプロイ パイプライン セキュリティ 今回はフロントエンドと バックエンドにフォーカス
Slide 30
Slide 30 text
© SMS Co., Ltd. 1. フロントエンドモニタリング フロントエンド (ユーザー体験) ビルド / デプロイ パイプライン セキュリティ バックエンド (インフラ)
Slide 31
Slide 31 text
© SMS Co., Ltd. 1. フロントエンドモニタリング ユーザーがブラウザ上でRUMの JavaScriptを実行することで メトリクスやログなどを取得。 CloudFrontが出力するメトリクスや リアルタイムログをCloudWatchへ連携。 ヘッドレスブラウザがエンドポイント (URL) にアクセスすることでメトリクスやトレース、 スクリーンショットなどを取得。
Slide 32
Slide 32 text
© SMS Co., Ltd. 2. バックエンドモニタリング フロントエンド (ユーザー体験) ビルド / デプロイ パイプライン セキュリティ バックエンド (インフラ)
Slide 33
Slide 33 text
© SMS Co., Ltd. 2. バックエンドモニタリング ALBやFargateが出力する メトリクスをCloudWatchへ連携。 トレースデータをCloudWatchへ連携。 (Application Signalsによる OpenTelemetryの自動計装) データストアのサービスが出力する メトリクスをCloudWatchへ連携。 タスクのログやDBのログを CloudWatch Logsへ連携。
Slide 34
Slide 34 text
© SMS Co., Ltd. 04 まとめ
Slide 35
Slide 35 text
© SMS Co., Ltd. AWSを利用したフルスタックオブザーバビリティについて - まずはCNCFのObservability Whitepaperを読んで Observabilityの考え方やテレメトリーデータについて理解する - ワークロードがAWSにある場合はAmazon CloudWatchを利用し、 テレメトリーデータの収集と分析を進める - ProfilesやDumpsの取得に課題はあるが、 Amazon CloudWatchでのフルスタックオブザーバビリティは実現可能
Slide 36
Slide 36 text
© SMS Co., Ltd. Happy Observability life with Amazon CloudWatch
Slide 37
Slide 37 text
© SMS Co., Ltd. 05 おまけ
Slide 38
Slide 38 text
© SMS Co., Ltd. Amazon CloudWatch vs Observability SaaS Amazon CloudWatch Observability SaaS 導入 AWS上にワークロードがあればすぐに利用でき る。 アカウントのサインアップや初期設定など、 使えるまでに若干のタイムラグが発生。 機能 機能の追加はされているがSaaSほどの ペースではない。 機能の追加が多く、トレンドを先取りした便利な サービスが多い。フロントエンドやモバイルの可視化ま で幅広く対応。 他サービス との連携 SaaSなどとの連携が必要であれば、 自分で設定・構築する必要がある。 様々なサービスとの連携が可能なものが多く、 1つのObservability Platformで多くの データをモニタリングすることが可能。 コスト 主要なテレメトリーデータを低価格で収集 することができ、コスト分析にも優れている。 フロントエンドやモバイルのTraces、Logsはコスト急 増の可能性がある。CloudWatchからのデータ転送 を利用するとAWS側のコストも増加しがち。 サポート AWSサポートによる手厚いフォローが 期待できる。 英語のみの対応など、場合によりサポート品質に ばらつきがある可能性がある。