APM

APMとは?アプリケーション性能監視の重要性やツール解説

APMとはアプリケーションを中核としてシステム性能を監視し、その改善に向けた原因の特定・改修の迅速化を実現するプロセスやツールのこと。ここではAPMの概要や重要性、ツールについて説明します。

公開済み 所要時間:約 9分

近年、APMという言葉をよく耳にする人も増えたのではないでしょうか。APMは企業が良質のデジタルサービスを途切れなく提供する上で、欠かすことのできない仕組みといえます。
ここでは、APMの概要やインフラ監視との違い、APMの重要性などについて解説します。

APMとは、アプリケーションが問題なく稼働しているかを監視するプロセス

APM(Application Performance Monitoring/アプリケーションパフォーマンス監視/アプリケーション性能監視)は、アプリケーションが想定通りのパフォーマンスを発揮しているかどうかを監視し、その改善に向けた原因の特定・改修の迅速化を実現するプロセス、あるいはそのためのツールを指します。

APMを導入することで、アプリケーションを構成する多くの要素のメトリックを収集して全体の稼働状況を把握することが可能です。また、アプリケーションのパフォーマンス低下を検知し、その原因を素早く特定して対処することもできるため、提供するサービスレベルの維持とユーザー体験の向上につなげることができるでしょう。

APMとインフラ監視の違い

APMとインフラ監視は、監視の対象が異なります。APMがアプリケーションの状態を監視し、ユーザー体験に焦点を当てるのに対し、インフラ監視はシステムの個々の健全性を監視します。

従来、ITシステムの監視というと、一般的にインフラ監視が行われてきました。インフラ監視は、サーバーやネットワーク、通信回線、OSなどのITインフラが正常に稼働しているかどうかをチェックする仕組みです。サーバーやネットワーク、データベースごとに個々の健全性を確認できても、それらにまたがって成り立っているアプリケーションで起きていることまでは把握できません。インフラが正常に稼働していても、アプリケーションの動きが遅かったり、反応が鈍かったりすることは、十分にありえることです。現在の複雑化したシステム環境では、インフラ監視だけでは、エラーの原因特定が困難であり、復旧までに多くの時間がかかってしまいかねません。また、デジタルサービス提供にあたって重要なエンドユーザー体験を把握することも困難です。

そこで登場するのが、APMです。APMは収集したメトリックを分析することで、アプリケーションが本来の性能を十分に発揮できているか、問題がある場合はどこに問題があるかを検知することができます。

APMはなぜ必要なのか

APMが注目されている背景として、ユーザー体験が重要視されていることが挙げられます。

ITサービスの管理者から見ると、最も重要なのは「良質なデジタルサービスを、安全かつ安定的に提供すること」です。アプリケーションのパフォーマンスは、ユーザー体験に大きく影響します。読み込みが遅く、反応の鈍いサービスは、ユーザー離れが加速し、離脱したユーザーは競合サービスに流れることも少なくありません。

APMを導入すれば、「アプリケーションが動いているか」という死活監視ではなく、「アプリケーションが本来の性能を発揮できているか」、つまりユーザーに快適な環境を提供できているかどうかを監視します。「アプリケーションは正常に稼働しているが、パフォーマンスが落ちている」という状態であっても、APMなら容易に把握できるのです。

APM導入のメリット

APMを導入することで得られるメリットは、いくつもあります。中でも大きなメリットは、ユーザー体験の低下の検知と、トラブルシューティングの迅速化です。

ユーザー体験の低下を検知できる

APMを導入すると、ユーザー体験の低下を素早く検知できます。前述したようにユーザー体験の低下はユーザーの離脱につながるため、ビジネスの観点からユーザー体験はとても重要です。

APMによって、アプリケーションのボトルネックがどこにあるのかを把握できれば、マイナスを改善するだけでなく、さらにプラスに持っていくことも可能です。

ただ、ユーザー体験の低下の原因はアプリケーションのパフォーマンス低下だけではないため、より手厚い対策をとるのであれば、フロントエンドの監視や外形監視など、リアルタイムにユーザーの状況を把握できる機能も併用することをおすすめします。

トラブルシューティングの迅速化

APMの導入によるもうひとつのメリットは、トラブルシューティングの迅速化です。APMはアプリケーションのパフォーマンスレベルを測定するだけでなく、パフォーマンス低下の原因がどこにあるのかを探り出すことができます。そのため、原因特定から対処までの手間と時間を大幅に軽減し、迅速なトラブルシューティングを可能にします。

また、トラブルシューティングに関わるAPMのメリットは、「エラーにならない要因」も検知できるという点です。アプリケーションのパフォーマンス低下を引き起こす要因は、規定されたエラーだけではありません。アプリケーションやデータベースの応答速度やコードの書き方も大きく関わってきます。これらはインフラ監視ではエラーとして検知することが難しく原因の調査が困難であるため、結果としてトラブルシューティングの長期化を招いてしまうことは少なくありません。

しかし、APMによってアプリケーション関連のあらゆるメトリックデータを収集しておけば、インフラ監視では予見できない要因も検知・分析することが可能になり、ソースレベルで問題を特定することができるようになるのです。

APMとあわせて考えておくべきオブザーバビリティ

APMを導入するときに、併せて考えておきたいのがオブザーバビリティという観点です。オブザーバビリティとは、日本語で「可観測性」あるいは「観測する能力」などと訳され、システム上で何らかの異常が起こった際にそれを通知するだけでなく、どこで何が起こったのか、なぜ起こったのかを把握する能力を表す指標、あるいは仕組みを指します。

アプリケーションのパフォーマンス低下は、アプリケーションそのものだけでなく、フロントエンドやインフラに潜む要因によっても起こりうるものです。それらすべてのレイヤーを観測し、状況を検知できるオブザーバビリティの高い監視体制を構築することが重要といえます。

ここでは、オブザーバビリティを導入した監視体制にするメリットをご紹介します。

オブザーバビリティを導入した監視体制のメリット

部門間の立場を越えたコミュニケーションがとれる

オブザーバビリティを実現するツールなどを導入すれば、部門間の立場を越えたコミュニケーションがとれます。ソフトウェアを扱うエンジニアは、分野によって職域が細分化されています。企業によって多少の違いはあるものの、システムやアプリケーションを構築する開発エンジニアと、システムを管理する運用エンジニアに分かれることが一般的でしょう。

この明確な区分は、しばしば対立の要因になります。開発側はシステムをより洗練させるために頻繁にデプロイを優先する一方で、運用側はシステムの安定性を保つため慎重さを重視する場合もあり、それにより衝突が生じることも珍しくありません。

しかし、オブザーバビリティの高い監視体制を入れることで、運用側はトラブルの発生とその原因を素早く検知でき、開発側はそれを踏まえた開発を行うことができます。さらに、そのトラブルによって、ビジネスがどれほどのダメージを被るかも測定できます。

つまり、運用・開発・企画という異なる部門のメンバーが、ひとつの画面を見ながら、「ここに遅延が発生している」「それによって、これだけのビジネスインパクトが予想される」といった建設的なコミュニケーションがとれるようになるのです。

エンジニアが本来の業務に集中できる

エンジニアが本来の業務に集中できることも、オブザーバビリティを導入するメリットです。現場のエンジニアは、より洗練された機能を持つソフトウェアを作り出し、運用効率をさらに高めることが本来の業務です。トラブルシューティングや復旧作業は、彼らの時間と工数を削り取るばかりといえるでしょう。

そこで、オブザーバビリティを導入することで、トラブル対応の負荷が大きく軽減されます。そうなると、開発をはじめとする生産的な作業に時間とエネルギーを注ぎ込むことができ、エンジニアの生産性を高めていくことができます。

「BizDevSecOps」を実現するNew Relic APM 360

APMツールの導入を検討しているなら、APMを軸としたオブザーバビリティ・プラットフォームであるNew Relic APM 360がおすすめです。New Relic APM 360は、メインのAPMの画面からフロントやサービスレベル、インフラ、アラートまでシステムを360度、全体にわたってシームレスに作業ができることが大きな特徴です。複数のタブを行き来する手間がなく、ひとつの画面からシステム全体を俯瞰でき、ストレスなくパフォーマンス低下の原因を追い続けることができます。

New Relic APM 360を導入すれば、幅広く収集されたメトリックの分析によって、アプリケーションがどのように稼働しているか細かな部分まで把握でき、どこに問題があるのかをソースレベルで明らかにし、迅速に改善を図ることも可能です。

また、New Relic APM 360は、ビジネス(Biz:Business)、開発(Dev:Development)、セキュリティ(Sec:Security)、運用(Ops:Operations)がひとつながりになってプロジェクトを進めていく「BizDevSecOps」を実現できます。

アプリケーションパフォーマンスやユーザー体験を低下させる要因は、あらゆるレイヤーに潜んでいます。要因の検知は、リリース後よりも開発段階でできれば、より少ない工数で改善することができるでしょう。このことはセキュリティについても、またビジネス的な観点からのシステム評価についても、同様にいえます。開発段階からNew Relic APM 360で監視・評価しておくことで、リリース後の手直しのリスクを大きく抑制することができるのです。

APMを導入する際は、開発・運用の作業効率の向上だけではなく、セキュリティやビジネスの視点からも有用なNew Relic APM 360のを選択肢の一つとするのはいかがでしょうか。