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サポートによる手厚いフォローが 期待できる。 英語のみの対応など、場合によりサポート品質に ばらつきがある可能性がある。