アプリケーションに問題が発生すると、顧客に影響が及び、最終的にはビジネスにも影響します。ITチームは問題の根本原因を突き止め、迅速に解決しようと奔走します。これを複雑にしているのが、アプリケーションサービスを提供する、ますます複雑化・分散化するクラウドアーキテクチャです。そこで役立つのが、問題の根本原因を特定するためのモニタリングとオブザーバビリティです。
オブザーバビリティはモニタリングの別の言い方として使われがちです。この2つの用語はしばしば同じ意味で使われますが、実際には同じものではなく、ITインフラやソフトウェア開発の初心者はこの2つの違いに混乱することがよくあります。というのも、両者はシステムの健全性を維持するという同じ目的を持ちながら、その課題への取り組み方において目的、アプローチ、範囲が異なるからです。
では、オブザーバビリティとモニタリングの違いは何であり、どちらが自社の組織のニーズに適しているかをどう判断すればよいのでしょうか。オブザーバビリティが必要なのか、それともモニタリングで十分なのでしょうか。それぞれの仕組みを見ながら、これらの疑問への答えを導き出していきます。
モニタリング:従来のアプローチ
モニタリングとは
モニタリングとは、ITシステムの健全性を評価するために、集約データを収集、取り込み、分析するプロセスです。データの例としては、アプリケーション、インフラ、クラウドのテレメトリデータなどが挙げられます。長年にわたり、システムを円滑に稼働させ続けるための定番のソリューションとされてきました。
モニタリングは、CPUやメモリ使用率、ネットワークトラフィック、ログ、トレースといった事前定義済みのメトリクスに依存します。例えば、サーバーステータス、ネットワークレイテンシ、レスポンスタイム、ディスクやCPU使用率のチェックなどが挙げられます。このデータにより、ITチームはインフラやアプリケーションのパフォーマンスと可用性をリアルタイムで追跡できます。モニタリングツールやプラットフォームはダッシュボードやアラートを提供し、レポート機能も備えているため、ITチームはコンポーネントを監視し、予測される問題を特定し、特定の環境で発生する問題のトラブルシューティングを行うことができます。
モニタリングが真に価値を発揮するのは、長期的なトレンド分析とアラートの領域です。アプリがどのように機能しているかだけでなく、時間の経過とともにどのように利用されているかも示してくれます。
モニタリングの用途
現在のWebアプリケーションでは、インフラモニタリング、シンセティックモニタリング、リアルユーザーモニタリング(RUM)など、いくつかの種類のモニタリングが使用されています。それぞれの用途は以下の通りです。
- インフラモニタリングは、サーバーの健全性、稼働時間、リソース使用率など、ITシステムの現在の健全性に関する即時的なメトリクスを追跡します。
- シンセティックモニタリングは、一般的に短期的なトレンドの監視に使用され、自動化ツールを使ってシステムの機能性を測定します。例えば、サンプル値を用いてWebアプリケーションが期待通りに機能しているかを判断します。
- **リアルユーザーモニタリング(RUM)**は、長期的なトレンドの監視により適しており、ユーザーの実際のアプリケーション操作を記録し、アプリケーションが期待通りに機能・動作しているかを確認します。
モニタリングの限界
モニタリングは有用である一方、大きな限界も抱えています。ITの環境を診断中の患者に例えるなら、モニタリングはその患者の症状を明らかにしますが、それだけでは症状や問題の根本的な原因を明らかにするには不十分な場合があります。
モニタリングの限界は次の通りです。
- 根本原因を検出せず、解決策も提供しない: モニタリングはチームがシステムのパフォーマンスを監視し、既知の障害が検出された際にアラートを送信する助けにはなりますが、問題がなぜ発生したのか、どう修正すればよいのかは教えてくれません。
- 「既知の未知」しか特定できない: モニタリングは事前定義された条件に基づく問題しか検出できません。どのメトリクスやログを追跡すべきかを事前に把握しておく必要があります。チームが予測していなかった、事前定義済みの条件の範囲外で発生する問題があれば、モニタリングはそれを捉えることができません。これにより、重大な本番障害やその他の問題を見逃すことになります。
- プロアクティブな問題解決ができない: モニタリングは、あらかじめ設定されたエラーしきい値を超えた際に反応することにつながりますが、問題が発生する前にそれを予測したり、根本原因を診断したり、問題の発生を未然に防ぐための対策を積極的に講じたりするのには役立ちません。
- 現代の分散環境には不向き: モニタリングツールは従来サイロ化されており、現代のクラウドアーキテクチャやより大規模な分散環境では効率が限られます。 要するに、モニタリングはリアクティブ(事後対応)な性質が強く、根本的な問題を解決するというより症状を見つけることに主眼が置かれています。
オブザーバビリティ:複雑なシステムのための現代的なソリューション
オブザーバビリティとは
オブザーバビリティとは、外部の出力、つまりログ、メトリクス、トレースといったシステムが生成するデータを分析することで、複雑なシステムの内部状態を理解する能力です。システムがオブザーバブル(観測可能)であれば、ユーザーは追加のテストやコーディングを行わずとも、システムが生成するデータからパフォーマンス問題の根本原因を特定できます。
オブザーバビリティソリューションは出力データを分析し、システムの健全性を評価し、問題に対処するための実用的なインサイトを提供します。これにより、DevOpsチームはIT環境全体を、依存関係のコンテキストと理解とともに、統一的かつ包括的に把握できます。最終的に、チームは特に分散システムにおいて、問題をプロアクティブに検出し、より迅速に解決できるようになります。
オブザーバビリティツールは、カスタマイズ可能なダッシュボード、自動化機能、分析、アラートを提供し、チームがより迅速かつ効果的に根本原因分析を行えるよう支援します。中には、こうした問題を自らが修正するところまで踏み込んだプラットフォームもあります。
一言で言えば、オブザーバビリティは、現代のIT運用とそれが管理するサービスのパフォーマンスとレジリエンスを向上させる、進化し続けるツールです。レジリエンスが向上すれば、生産性の向上にもつながります。
オブザーバビリティが必要になるのはどんなときか
システムが複雑で予測困難、かつ分散化するほど、オブザーバビリティの重要性は高まります。一般的なユースケースには次のようなものがあります。
- クラウドネイティブアプリケーションとマイクロサービス: システムがより分散化し、さまざまなサービスがクラウド上、あるいは複数のクラウド上で稼働するようになるにつれて、ハイブリッド、クラウド、マルチクラウド環境のすべてを手動で監視するのは困難になります。オブザーバビリティを使えば、マイクロサービスがどこでホストされているかに関わらず、その間のやり取りを追跡できます。
- ログ、メトリクス、トレースの相関分析: オブザーバビリティにより、ログ、メトリクス、トレースをリアルタイムで分析・相関させ、システムの健全性をより正確に把握できます。
モニタリングに対するオブザーバビリティの主な利点
オブザーバビリティとモニタリングを比較した際、オブザーバビリティがモニタリングに対して持つ主な利点は以下の通りです。
- 「未知の未知」のトラブルシューティング: オブザーバビリティを使えば、複雑で動的なシステムにおける障害など、予測が難しい問題を特定し、トラブルシューティングできます。これには、ITチームが発生を想定していなかった問題も含まれます。
- プロアクティブな問題予防: オブザーバビリティは、問題が深刻化する前にそれを特定し、発生する前に未然に防ぐための対策を講じる能力を提供します。
- より迅速なデバッグとMTTR(平均解決時間)の短縮: オブザーバビリティツールを使えば、スタック全体にわたって問題を追跡し、根本原因を迅速に特定できるため、デバッグプロセスが高速化します。
なぜオブザーバビリティとモニタリングは似ているように見えるのか
では、オブザーバビリティとモニタリングの間で混乱が生じる理由は何でしょうか。一つには、用語自体が似通っており、両者とも同様の最終目標を持っていることが挙げられます。どちらも、システムの健全性、パフォーマンス、動作に関するインサイトを提供することを目指しており、システムの信頼性を向上させ、パフォーマンス全体を改善するために問題の原因を特定するという同じ目的を持っています。
また、両者は同じデータに依存し、問題のプロアクティブな検出とトラブルシューティングを可能にするために、同じデータ収集・分析・可視化の手法を使用します。最終的に、両者はエンジニアがシステムの信頼性、パフォーマンス最適化、効率的なリソース活用を確保する助けとなります。オブザーバブルなシステムを構築する場合でも、モニタリング対象のシステムを構築する場合でも、まずは適切な出力を取得する必要があります。これには、コレクターやエージェントのインストール、場合によってはアプリケーションコードへの計装が必要です。
この2つのタスクは共存することも可能です。前述の通り、モニタリングはオブザーバビリティのサブセットです。実際、多くのオブザーバビリティプラットフォームには、モニタリングツールがインターフェースに組み込まれています。つまり、モニタリングとオブザーバビリティの両方に対応するために、別々のツール群を2つ用意する必要はなく、すべてが一体となって提供されているということです。
オブザーバビリティとモニタリング、どちらを選ぶべきか
モニタリングとオブザーバビリティを詳しく説明してきましたが、ここで重要な問いにたどり着きます。オブザーバビリティ対モニタリング——どちらが勝るのでしょうか。自社の環境にどちらのモデルが最適かをどう判断すればよいのでしょうか。以下は、モニタリングとオブザーバビリティを直接比較するシンプルな表です。
| 観点 | モニタリング | オブザーバビリティ |
|---|---|---|
| 目的 | 既知の問題とパフォーマンスメトリクスの検出 | システムの動作と根本原因に関するインサイトの提供 |
| 範囲 | 事前定義されたメトリクスとしきい値に限定 | 事前定義されたメトリクスの範囲を超えた、システムダイナミクスの深い理解 |
| 焦点 | リアクティブな問題検出 | プロアクティブな問題予防と迅速なデバッグ |
| ツール | 稼働時間、インフラ、アプリケーションのヘルスチェック | 分散トレーシング、ログの相関分析、メトリクスの集約 |
| 最適な用途 | 小規模で予測可能、非複雑なシステム | 大規模で分散化されたマルチクラウドシステムやクラウドネイティブアプリ |
- システムが小規模で予測可能な場合 → モニタリングで十分です。 複雑性が最小限のシンプルなアプリケーションや小規模なインフラであれば、発生するパフォーマンス問題の検出にモニタリングで対応できます。
- 分散型のクラウドベースアプリケーションを運用している場合 → オブザーバビリティが必要です。 マイクロサービスや複数のクラウドにまたがって稼働するシステムでは、相互作用を理解し問題を診断するために必要な深さをオブザーバビリティが提供します。
- 頻繁な障害やデバッグの遅れを経験している場合 → オブザーバビリティを導入してください。 システムが予測不能であったり、大量のインシデントに直面したりしている場合、オブザーバビリティはより優れた診断能力によってダウンタイムを大幅に削減できます。
モニタリングからオブザーバビリティへの移行方法
現在は従来型のモニタリングに依存しているものの、オブザーバビリティへの移行を検討している場合、以下がステップバイステップのガイドです。
ステップ1:現在のモニタリング戦略のギャップを特定する
現在のモニタリングアプローチがどこで不足しているかを評価します。根本原因までさかのぼれない問題はありますか。チームは問題の迅速なデバッグに苦労していますか。
ステップ2:分散トレーシングとログの相関分析を実装する
まずは、(マイクロサービス向けの)分散トレーシングとログの相関分析をシステムに追加することから始めます。これにより、リクエストの経路を追跡し、ボトルネックや障害をより効果的に特定できるようになります。
ステップ3:既存のスタックと統合できるオブザーバビリティツールを選定する
現在のインフラとうまく統合できるオブザーバビリティツールを探しましょう。人気のある選択肢としては、Prometheus、OpenTelemetry、AWS CloudWatchなどが挙げられます。使用しているクラウドサービス、Kubernetes、その他の技術とツールがサポート・統合されていることを確認してください。
ステップ4:プロアクティブなオブザーバビリティ手法についてチームを教育する
オブザーバビリティの導入には、考え方の転換が必要です。チームには、これらのツールを問題への事後対応だけでなく、データをプロアクティブに分析しシステムパフォーマンスを最適化することで問題を未然に防ぐために活用するよう教育しましょう。
まとめ
モニタリングが問題の検出に役立つ一方、オブザーバビリティはモニタリングの領域を超えます。オブザーバビリティは、なぜそうした問題が発生するのか、そしてそれがより大きな問題になる前にどう修正すればよいのかを理解する助けとなります。従来型の小規模な環境で運用している場合は、モニタリングで十分かもしれません。しかし、システムが拡大し複雑化するにつれて、高い可用性とパフォーマンスを維持するためにオブザーバビリティが不可欠になります。
システムの健全性向上に向けた次のステップを踏み出す準備ができているなら、まずは現在のモニタリング設定を見直すことから始めましょう。今日からオブザーバビリティツールの検討を始めて、システムに対するより深いインサイトを獲得し、よりスムーズで信頼性の高い運用を実現してください。TrueWatchは世界最大手の6大クラウドとシームレスに統合され、使いやすいアウトオブボックスの機能・ツールを幅広く備えています。どのようなツールを使用していても、TrueWatchは貴社のITスタックに簡単に組み込むことができます。システム管理の未来はプロアクティブであり、その流れに取り残されたくはないはずです。

