分散トレーシングとは?
システムの特徴やメリット・注意点を解説!

近年、顧客へ提供するデジタルサービスを安定的に稼働させるために、分散トレーシングを導入する企業が増えています。分散トレーシングとは、稼働しているシステムのデータ通信や処理状況を詳細に記録し、故障発生時の原因究明や改善を迅速化させる仕組みです。

近年のシステムは分散された複数のサービスが連携しているため、各種ネットワークやフロントエンド・バックエンド間の不具合の原因究明、パフォーマンスの改善、分析などに時間を要する場合があります。そのため、原因究明や改善を迅速化させるために、分散トレーシングの重要性が高まっているのです。

本記事では、分散トレーシングの特徴や導入するメリット、注意点などについて詳しく解説します。

分散トレーシングとは?システムの特徴やメリット・注意点を解説!

分散トレーシングとは?

イメージ画像:分散トレーシングとは?

ここでは、分散トレーシングとはどのようなシステムのことを指すのか、特徴や要素について解説します。

分散トレーシングとは一連の処理を追跡・管理すること

分散トレーシングとは、リクエストに対して動作するマイクロサービスの処理状況をログとして送信・保存することで、リクエスト全体の流れを可視化するシステムのことです。

分散アーキテクチャ環境で構築されたシステムにおいて、起動や操作といったリクエストを実行するには、さまざまなマイクロサービスの動作が必要です。1つのリクエストに対して複数のマイクロサービスが関係しており、各マイクロサービスが正常に動作することで、システムやアプリケーションが稼働します。そのため、1つのマイクロサービスが正常に動作していないだけで、トラブルが発生する可能性があります。

このようなトラブルが起こった際に状況を把握するためにも、分散トレーシングで処理を管理することが重要です。

なお、分散トレーシングは「トレース」と「スパン」の2つの要素から構成されています。それぞれの要素について見ていきましょう。

分散トレーシングの構成要素①:トレース

トレースとは、リクエスト全体のことであり、1つのリクエストに対して1つのトレースが生成されます。また、トレースごとにトレースIDが付与されます。

トレースIDは、どのリクエストでどのマイクロサービスがどのような処理を行なったのかを判別する際に必要なものです。システムやアプリケーションの動作にトラブルが生じた場合は、トレースIDを活用することで問題発生箇所を特定できます。

分散トレーシングの構成要素②:スパン

スパンとは、リクエストを実行するために個々のマイクロサービスが処理を行う単位です。1つのトレースのなかに、1つまたは複数のスパンが内包されており、それぞれの処理状況が記録されます。つまり、スパンはトレースを構成する要素であり、スパンの処理状況によってトレース全体の処理が正常に終了するかが決定されるのです。

また、各スパンには、ログやタグ、コンテキストといった、さまざまなメタデータが含まれています。トレースにトラブルが生じた場合は、各スパンに含まれた情報を詳細に分析して原因や改善策を特定するため、スパン内のメタデータは非常に重要です。

親スパン (ルートスパン)とは?

スパンには、「親スパン(ルートスパン)」と「子スパン」の2種類があります。一般的に、親スパンはスパン全体の合計時間を表し、子スパンは親スパンを実行するための要素のことです。例えば、親スパンの実行時間が0.1秒の場合には、処理時間に0.05秒必要な子スパンが2つ存在することがあります。

また、子スパンはさらに独自の子スパンに分割されることがあります。システムによっては子スパンのあとに親スパンが終了することもあるでしょう。スパンの親子関係を視覚化することで、スパン同士の関係と、実行されている全サービスのタイムラインが明確となります。スパンの把握は、アプリケーションの処理状況を分析する際の重要なポイントです。

分散トレーシングを行う4つのメリット

イメージ画像:分散トレーシングを行う4つのメリット

ここでは、システムを運用する際に分散トレーシングを導入するメリットを4つ解説します。

1.原因究明の迅速化

複数のマイクロサービスにより構築された分散システムでは、一度トラブルが発生するとシステム内で連鎖的にトラブルが波及し、システム全体が停止するリスクがあります。しかし、システム同士の関係は複雑化しており、システムのどの部分にトラブルが生じたのか特定は難しいのが現状です。

分散トレーシングでは、各リクエストに対するスパンなどの詳細を記録し、処理状況を可視化します。トラブルが生じている場所を迅速に特定できるようになるため、原因究明・改善にかかる時間を大きく削減することが可能です。さらに、不具合に対して迅速に対応することで、顧客満足度の向上にもつながります。

2.業務効率化の実現

分散トレーシングが有効に働くのは、すでに稼働中のシステムやアプリケーションだけではありません。開発中のシステムやアプリケーションのバグを発見する際にも有効で、作業時間の短縮にもつながります。その結果、システムやアプリケーション開発の業務効率化や生産性向上といったメリットも得られます。

また、開発期間を短縮することで、リリース期間の短縮や開発コストの削減といった効果もあります。市場やニーズの変化に柔軟に対応できるうえ、より多くのユーザーが求めるサービスを迅速に提供できるようになるでしょう。

3.チーム開発における連携強化

従来のシステムやアプリケーションの開発現場では、複数のエンジニアがそれぞれの専門性を持つチームとして開発を担当します。不具合の内容や場所によって担当するエンジニアが異なるため、バグなどが発生した場合は、原因究明に加え、その部分を担当したエンジニアの特定が必要です。

分散トレーシングによってトラブルの原因究明が迅速化・効率化されると、トラブルの発生場所や修正担当エンジニアの特定がより簡単になります。さらに、原因が複数にわたる場合でも短時間で発見できるので、並行して改修作業をすることで効率良く対応することが可能です。

4.柔軟性が高く適応性が高い

分散トレーシングは、リクエストに対応するマイクロサービスの一連の処理を記録するものであり、さまざまなアプリケーションやプログラミング言語に対応しています。そのため、ほぼすべてのマイクロサービスに導入できます。

さらに、分散トレーシングのツールは、知識があれば誰でも自作できるため、自社の業務に合わせた自作ツールを用いて分散トレーシングを実装・運用することも可能です。このように、分散トレーシングツールは柔軟性や適応性が高いため、既存のシステムにも無理なく実装できるでしょう。

分散トレーシングで使用されるおもなツール

ここでは、実際に分散トレーシングで活用されるツールの概要を2つ紹介します。

コードトレース

コードトレースは、アプリケーション内のソースコードが正しく実行できるかを検査するツールです。コードを1行ずつ実行しその結果を確かめていくことで、未知の不具合が見つかりやすくなるため、デバッグなどの工程ではよく利用されています。

トレーシングするコードブロックが小さい場合に、わずかな修正のためにプログラム全体をトレースしていると、余計な時間がかかるかもしれません。そのような場合は、ツールを使わず手作業でトレースするほうが効率的なことがあるため、状況に合わせてトレース方法を選択することが大切です。

プログラムトレース

プログラムトレースは、アプリケーション実行時の命令や参照データ、変数アドレスなどを調査するツールです。本番環境でアプリケーションが適切に動作するかを確認でき、デバッグ工程で利用されています。

さらにプログラムトレースは、開発したプログラムが動作しているときのメモリー状況なども確認可能です。プログラムトレースによって、リソースや処理上の問題など、アプリケーションのパフォーマンスに関する問題について診断・理解することができます。

分散トレーシングを行うときの注意点

イメージ画像:分散トレーシングを行うときの注意点

ここでは、分散トレーシングを行うときの注意点について解説します。

機器のパフォーマンス低下

分散トレーシングで収集・記録するデータは多岐にわたり、1秒ごとに蓄積されていくデータの量は膨大です。そのため、分散トレーシングを実行しているサーバーや通信回線にかかる負荷は大きく、機器全体のパフォーマンスが低下するリスクがあります。

機器のパフォーマンス低下は、社内作業への影響だけでなく、顧客サービスのパフォーマンス低下といったトラブルを招く可能性があるでしょう。さらに、現在のパフォーマンス低下に対して専用設備を構築するといった対応により、分散トレーシングの運用コストが大きくなる可能性もあります。

データの収集量を減らせない

膨大なデータの収集・記録による機器や回線の負荷を軽減させるために、分散トレーシングではツールを使用したサンプリングによって、収集するデータの量を抑制しています。パフォーマンスに関連するデータに絞って収集・記録することで、機器や回線の負荷が軽減し、無理のない分散トレーシングが可能となっているのです。

しかし、分散トレーシングでは、詳細なトレースデータを収集・記録するほど、問題に対する対応がより迅速かつ効果的になります。扱うデータを取捨選択すると、不具合の原因究明に必要なデータが収集・記録されていない、などのトラブルが発生する可能性もあります。そのようなトラブルを発生させずにサンプリングするためには、サンプリング方法やサンプリング率の設定など、高度な知識が必要です。

導入ハードルが非常に高い

分散トレーシングを導入するには、複数のサービスにログなどのデータを送信するような変更を加えなければいけません。その結果、サービスの動作に悪影響を与え、システム全体の稼働が停止するといったトラブルが発生することもあります。分散トレーシングの構築だけでなく、こうしたトラブルに対して迅速に対応するためにも、分散トレーシングの知識や技術に精通したIT人材をそろえ、テクノロジーを活用しなくてはいけません。

また、さまざまなサービスに変更を加える必要があるため、多くのIT人材や時間が必要となります。そのため、既存サービスに分散トレーシングを導入するハードルを高く感じ、導入を諦める企業も多いでしょう。

根本的な解決にはならない

分散トレーシングは、システムなどにトラブルが発生したときの原因究明に効果を発揮します。しかし、分散トレーシングは基本的に各トレースやスパンの処理状況を記録し可視化することがおもな役割です。分散トレーシングを導入することで不具合が起きている箇所は判断できますが、その原因まではわかりません。

そのため、分散トレーシングをトラブルの原因究明や改善に役立てるには、正しく情報を読み取れるIT技術者や専用ツール、ソリューションが必要です。分散トレーシングを導入するだけでは、根本的な解決になるわけではないことに注意しましょう。

クラウドシステムを利用する企業が抱える2つの課題

近年、多くの企業が活用しているクラウドシステムは、一般的なシステムよりも多くのマイクロサービスが複雑に連携し動作することで、便利なサービスを提供します。そのため、クラウドシステムを常に最適な環境で運用するためには、分散トレーシングが非常に有用です。

また、クラウドシステムの運用には、「クラウドシステムに対応した監視手法の準備」「クラウドシステムに対する高度な知識と運用ノウハウの取得」という2つの課題があります。これらの課題を解決せずにいると、クラウドシステムの運用負荷が増大し、日々の業務や顧客サービスへ悪影響を与えるかもしれません。

そのため、クラウドシステムを利用する企業は2つの課題を解決するために、分散トレーシングによるリスク管理を行うことが求められています。

クラウドシステムを安定利用するなら「マルチクラウドマネジメント」がおすすめ!

企業がクラウドシステムを安定して運用するには、先述した2つの課題の解決に取り組まなくてはいけません。そこで有用なのが、NTTコミュニケーションズが提供する「マルチクラウドマネジメント」です。ここでは、マルチクラウドマネジメントがクラウドシステムの安定運用に対してどのように有効なのか、その特徴やメリットなどについて解説します。

Datadogと連携した一元的監視

マルチクラウドマネジメントの大きな特徴となるのが、アメリカのDatadog社が提供する「Datadog」と連携していることです。Datadogは、32ヵ国2万3,200社での利用実績があるクラウドサービスで、さまざまなクラウド環境で最適なモニタリングを行ないます。

マルチクラウドマネジメントでは、DatadogのモニタリングシステムとNTTコミュニケーションズの運用ノウハウを融合させ、ICT環境の一元的な監視・運用体制を実現しました。クラウドシステムだけでなく、企業内のICT環境もまとめて監視・運用することで、最適なICT環境を企業へ提供します。

ICT環境の最適化提案・構築

マルチクラウドマネジメントは、多数の企業に対してICT環境全体の監視・運用を行うため、ICT環境における最新の問題点なども熟知しています。そこで、企業のICT環境に対する最適化の提案から構築、運用までを行ない、企業の業務環境改善までトータルにサポートすることも可能です。

マルチクラウドマネジメントのトータルサポートでは、最新の機器やシステムを単にすすめることはありません。企業の目的や業務内容に合わせた提案を行うことで、企業にとって最適なICT環境の構築をサポートしています。

迅速なトラブル対応を可能にする

マルチクラウドマネジメントでは、Datadogを活用した分散トレーシングによって、さまざまなデータを常に収集しシステムなどの稼働状況を可視化します。トラブルが発生した際のアラート通知機能を搭載しているため、常に監視していなくてもトラブルの発生を迅速に検知可能で、問題発生箇所の特定が容易になるでしょう。

また、同時系列で複数のサーバーを管理するため、トラブルに対して広範囲の原因分析が可能になり、問題発生箇所の特定と復旧までに必要な時間を短縮します。その結果、トラブル対応などにも迅速に取り組むことができ、企業の業務や顧客サービスへの影響を最小限に留めることが可能です。

さらに、こうしたトラブルの履歴などから、NTTコミュニケーションズのサービスマネージャーが企業のICT担当者へ継続的に改善施策を提案します。トラブルが発生しにくくなるように運用環境の改善を絶えずサポートしていくことで、AWS/Azureなどのクラウドシステムや業務システムなどの安定的な運用を実現可能です。

まとめ

分散トレーシングは、システムやアプリケーションの動作状況を詳細に記録することで、不具合の原因究明や改善に対しいち早く取り組めるようにするシステムです。システムの安定稼働やトラブルシューティングを実現することはもちろん、エラーやトラブルが発生しても迅速に対応することで、顧客満足度の向上につながるなどのメリットもあります。

一方で、分散トレーシングを実現するためには超えなければならないハードルが高く、企業によっては導入が困難なケースもあるでしょう。そこで、NTTコミュニケーションズが提供する「マルチクラウドマネジメント」の活用がおすすめです。

マルチクラウドマネジメントでは、オフィスのICT環境を構築からサポートするため、環境や人材に左右されずに分散トレーシングを利用できるようになります。クラウドシステムのメリットを最大限に活かし、エージェントなどに影響を与えない方法で最適な運用環境を実現しますので、分散トレーシングの導入を検討している企業の担当者さまは、ぜひ一度お問い合わせください。

コラム一覧へ

このページのトップへ