クラウドコンピューティングによりすべてが変化していく中、アプリケーションとインフラストラクチャの監視もその例外ではありません。Amazon Web Services (AWS)のクラウドプラットフォームや、Pivotal などのツールが提供するフレキシビリティ、スケール、サービス、従量制の料金体系によって、企業におけるアプリケーションの構築方法や、それらのアプリケーションを対応インフラにデプロイする方法は一変しました。
単一のデータベースとだけ通信する単体のアプリをベアメタルや仮想マシンのホストに何か月もかけてデプロイするのではなく、何種類ものマイクロサービスやコンテナをオンデマンドでデプロイする方法を選ぶ企業が次第に増えてきています。また、以前は静的なサーバーであったコンピューティングインスタンスは、オンデマンドで (使用量に基づいて) デプロイされ、シームレスに負荷分散される動的なインスタンスへと変化してきています。企業は、1 つの静的なコンテンツ配信ネットワーク (CDN) に依存するのではなく、さまざまなリージョンを受け持つ複数の CDN を日常的に扱うようになりました。ウェブデベロッパーは、クライアント側 (エンドユーザーのブラウザ) にかける負荷を増やして、飽きのこないユーザーエクスペリエンスの実現に役立てています。変化の例は他にもまだまだあります。
こうしたすべての変化に対応し、クラウドベースのアプリケーションや動的なインフラストラクチャを効率的に監視するには、監視プラットフォームも変化する必要があります。従来のオンプレミス (シングルテナント) 型のマネージドホスティング (別名「疑似 SaaS」) による監視ソリューションで、動的なインフラストラクチャや、クラウドでホストされるアプリケーションを監視しようとすることは、ゴーカートで高速道路を走ろうとするようなものです。それではとても追いつけません。
ここでは最新鋭のクラウドベースアプリケーションやインフラストラクチャを適切に監視するために必須の、機能や性能7 つをご紹介します。
1. イベントをキャプチャしてクエリを行い、データを集計するだけでなくトレースも行う機能
ユーザーがオンラインで何かを購入するときに行われる処理では、大量の HTTP リクエストが生成されます。エンドツーエンドのクラウド監視を正しく行うには、ユーザーが購入を完了するまでに作成されるすべての HTTP リクエスト (個々の商品の詳細ページ、カートに追加の POST リクエスト、カートの確認ページ、支払いと配送の POST リクエスト、最後の「注文を送信」ページなど) を正確に把握する必要があります。クラウドへのデプロイでは、リクエストはアプリケーションや、トランザクションを完了するためのマイクロサービスやキューに達するまでに、多数の動的なコンポーネント (ブラウザ、モバイル端末、CDN、ロードバランサなど) で処理されるため、未処理のトランザクションデータをキャプチャする機能が特に重要となります。
ボトルネックをすばやく特定し、クラウドネイティブシステム内のさまざまなコンポーネント間の関係を把握できることは、監視ソリューションの大きな差別化要因となります。New Relic を使用すると、トランザクションに関連する指標を集計するだけでなく、それぞれのコンポーネントの正確な応答時間を確認することができます。これにより、購入手続きで発生したエラーについてユーザーからサポート担当に問い合わせがあった際に、デベロッパー (またはサポート担当や DevOps チーム) は、アプリケーションスタックの New Relic で管理している階層すべての中から、エラー発生の原因となっているトランザクションのセットを正確に見つけ出すことができます。
New Relic では、エラートレースやカスタム属性などの不可欠なメタデータを使用して、トレースやイベントのデータを強化できます。
ユーザーに固有の属性や企業に固有の属性 (顧客のユーザー名など) から取得したデータを分割することで、改善すべき点の優先順位をつけやすくなり、顧客向けの最適化プランを加速することができます。New Relic の数多くの顧客は、専用に構築されたマルチテナントの分析データベース (別名「NRDB」) に格納されたこうした収集データに対し、SQL と似た New Relic Query Language (NRQL) を利用してクエリを実行して、ダッシュボードやアラートを作成しています。(詳しくは「NRQL Alerts が New Relic データの利用方法を変える 」をご覧ください)。
2. サイト、アプリ、インフラストラクチャ間の接続を監視して可視化する機能
企業がクラウドに移行するということは、大規模な単体のアプリをデータベースサーバーと通信させるということだけにとどまりません。それだけではなく、ロードバランサ、キュー、サーバーレスアーキテクチャ、アプリ、マイクロサービスなど、数が増え続けるコンポーネント間の複雑化した接続から発生する問題についても気を配らなければなりません。
クラウドの監視において重要なのは、トランザクションをトレースしてすべてのコンポーネント間の接続を確認できることです。また、個々のコンポーネントに不可欠で有用なデータを配信するための内部アプリケーションコードを深く理解できる、詳細な言語エージェントの存在も重要です。
約10年間に渡る、最新鋭のクラウド監視に実績を持つ New Relic では、7 つの主要プログラミング言語に対応しています。個別の設定やコード変更は必要ありません。さらに、New Relic APM サービスマップではコンポーネント間の接続を視覚的に確認できるため、すべての接点におけるパフォーマンスの問題を追跡することができます。問題の特定後にトレースデータを使用すれば、問題を引き起こしている関連コードを見つけることができるため、迅速に問題を修正できます。
また、New Relic の革新的な新しいヘルスマップでは、業界最先端の APM やインフラ監視データを統合して可視化できるため、運用チームや DevOps チームはアプリケーションの問題をすばやく把握してトラブルシュートすることができます。
特に重要なのは、New Relic が監視するのはアプリケーションサーバーとインフラストラクチャ間の接続だけではないということです。クライアント側のモバイルやブラウザのアプリケーションのパフォーマンス全体を監視し、それがどのようにユーザーエクスペリエンスに直接影響しているかを確認することもできます。先述のとおり、ウェブデベロッパーはエンドユーザー側のクライアントにかける負荷を増やしてきているため、バックエンドを監視するだけでは全体的な状況を把握できないことがあります。アプリケーションサーバー側が正常に見えていても、実際はクライアント側でフェイルオーバーやエラーが発生しているといった場合もあります。New Relic Browser、New Relic Mobile、New Relic Synthetics などを備えた New Relic デジタルインテリジェンスプラットフォームは、エンドツーエンドのパフォーマンス全体をリアルタイムで実際にキャプチャできる数少ないソリューションです。