データインサイダー

API監視とは?

API監視の最も基本的なレベルでは、APIに接続されたリソースが利用可能かどうか、適切に動作しているかどうか、呼び出しに応答するかどうかをチェックします。デバイスの多様化、アプリケーションデリバリーの要となるマイクロサービス、クラウドへの移行の加速など、ネットワークを構成する要素が増え、その環境が進化するにつれ、API監視の重要性(そして複雑さ)はますます高まっています。

デジタルビジネスは、ソフトウェアを構築し提供する方法を根本的に変化させています。アプリケーションが社内ツールのみに依存していたのは過去の話です。今や、アプリケーションは外部のAPIやサードパーティのアプリケーションプロバイダーに大きく依存しており、それがさらに他のAPIやアプリケーションにも依存しています。このようなモジュラー方式は製品に柔軟性を与え、開発を迅速化しますが、その一方で問題が発生したときの対処が困難になる可能性があります。この方式では、依存の連鎖に連なるコンポーネントが1つでも問題を起こすと、それに依存するすべてのコンポーネントがドミノ倒しのように影響を受けることになります。これは、従来のクローズドシステムでは個別のインシデントとして発生するだけで済む問題でした。したがって、製品が外部APIに依存している場合は、可用性のみならず、それ以外の項目も監視していくことが重要です。パフォーマンス、データの検証やプロセス、機能変更、セキュリティなどについても目を光らせていく必要があるでしょう。

この記事では、API監視の仕組み、注視すべき重要なメトリクス、API監視のメリットとこれが企業にとって重要である理由、およびAPI監視を導入する方法について説明します。

API監視とは?| 目次

APIの概要とAPIの種類

APIとは、Webベースのソフトウェアアプリケーションやサービスにアクセスするためのプログラミング命令と標準規格のセットです。APIは、サービスとやり取りする方法についてのインストラクションをDevOps担当者に提供し、担当者はAPIを利用して異なるシステム間でデータを結び付けることができます。ビジネスやアプリケーション全般がオープンなAPIを基盤として構築されており、これを利用すればシステム間でのデータのやり取りが可能になります。

APIは、組織内部で使用されるプライベートなプログラマー/アプリケーション向けの場合もあれば、パブリックなコンシューマー向けの場合もあり、多数のユースケースがあります。プライベートAPIを使用すると、より俊敏で柔軟かつ強力なビジネスが実現します。パブリックAPIは、それに接続することでビジネスにおける新たな統合機能を提供したり、新たなパートナーシップを構築したりすることができます。

APIは、さまざまなアプリケーション要素が相互にやり取りするための機能を提供します。これらの要素が接続されるポイントはエンドポイントと呼ばれます。

API監視の仕組み

APIは、サービスとやり取りする方法、そしてフロントエンドやバックエンドのシステムとデータを結び付ける方法についてのインストラクションを提供します。

API監視の仕組み

API監視を使用すると、APIの可用性、機能、スピード、パフォーマンスの問題を追跡することができます。また多くの場合、これらの作業は自動化することができます。

可用性:API監視は、APIに接続されたリソースが利用可能か、適切に動作しているか、呼び出しに応答するかといったことをチェックします。また、アプリケーションと他のアプリケーションやサービスとの相互依存が高まるにつれ、APIが依存しているリソースの可用性も監視できるようにAPI監視の対象を拡大することも多くなっています。API監視を使用すれば依存関係の連鎖に障害が発生していることを管理者に通知できるため、ITチームはWebサイトやアプリケーションの稼動状態を維持できるように適切な措置を講じることができます。

パフォーマンス:APIが呼び出しに正常に応答したとしても、そのアプリケーションのパフォーマンスが基準に達していないことも考えられます。応答速度はどれぐらいか、HTTPレスポンスコードは有効活用されているか、応答時間が低下していないか、開発環境や本番環境など、環境が異なるとAPIのパフォーマンスが変わるか、などのメトリクスを確認します。

呼び出しているAPI、バックエンドのサービス、あるいはその先の別のAPIが原因かどうかにかかわらず、これらのパフォーマンスメトリクスはいずれもパフォーマンスに影響するため、サイトやアプリケーションの何らかのパフォーマンス監視が必要となります。API監視は、これらのパフォーマンスの低下をアラートで通知して対応を可能にします。

データの検証と多段階プロセス:APIが利用可能でリクエストに応答していても、返されるデータが正しくなかったり、想定外のフォーマットであったりすることも考えられます。データ検証を監視することで、正しい応答を正しいフォーマットで確実に受け取るようにすることができます。これは、最初の応答を受け取った後の多段階プロセスで特に重要になります。データ検証により、これらのプロセスが想定通りに動作しているかどうかを把握できます。

サードパーティおよびパートナーのAPIとの統合の監視:アプリケーションやサービス(SlackなどのWebアプリケーションやWebサービスなど)は自社管理のAPIとサードパーティAPIの両方を利用していることが多く、ユーザーがこの2つの違いを区別できないこともよくあります。API監視ソリューションは、自社管理のAPIだけでなく、サードパーティおよびパートナーのAPI(アマゾン ウェブ サービスやクレジットカード会社など)のパフォーマンスも可視化することができます。これにより、パートナーに責任を持たせるだけでなく、何か問題が発生した際に誰に連絡すべきかも明確になります。

機能変更の監視:外部サービスのパフォーマンスに依存する機能がある場合、アプリケーションとそのサービスとの互換性が保たれていることを確かめる必要があります。変更が新規リリースによるものかバグフィックスによるものかにかかわらず、変更やアップグレード後にAPI駆動型サービスでベースコードが動作しなくなった場合、API監視はエンドユーザーにアラートを送信することができます。

セキュリティの監視:外部から接続できるように、組織がネットワークの公開を進めたことで、攻撃者が脆弱性を利用する機会も増えています。APIを使用する場合、そのAPIが保護されており、セキュリティ設定が適切に管理されている必要があります。また、そのAPIにフィードする他のAPIによるリスクも想定しなければなりません。API監視によって、セキュリティ侵害を示す異常な動作を探してリアルタイムで脅威を特定することで、確実な認証に加え、アプリケーションに接続されているAPIのセキュリティも確保します。

監視対象

API監視を使用して、APIの可用性、パフォーマンス、データ検証、統合、機能変更、セキュリティを追跡できます。

APIのテストと監視のフレームワークとは

APIのテストと監視のフレームワークは、API監視を実装するために使用されるソフトウェアで、JSON、PagerDuty、OAuth、Postmanなどのツールがあります。開発者が組織用のカスタムAPI監視やアプリケーション監視のプロトコルを作成できるオープンソースパッケージから、一般のユーザーが利用できる機能を数多く提供している商用パッケージまで、幅広い選択肢があります。API監視フレームワークをどのようにセットアップするべきかは、組織の個別のニーズ、特性、予算によって異なります。

APIエンドポイントを監視する方法

APIは、さまざまなネットワーク要素が相互にやり取りするための機能を提供しています。これらの要素が接続されるポイントはエンドポイントと呼ばれます。つまり、セキュリティやパフォーマンスなどについてAPIを適切に監視するには、デフォルトでエンドポイントも含めて監視する必要があります。また、APIエンドポイントが正常に機能していても、ネットワーク内の目的の相手と通信していないかもしれません。包括的なAPI監視ソリューションを使用することで、APIエンドポイントで接続の問題が発生した際にそれを把握することができます。

API監視が重要である理由

ビジネスや組織が成長し、規模を拡大し、新しいサービスを提供するうえで、APIは重要な役割を担ってきました。APIを利用すれば、コアアプリケーションを変更しなくても、ユーザーの要望やニーズを満たしながらエンドユーザーエクスペリエンスを向上させることができます。また、新型コロナウイルスの感染拡大によるSaaSビジネスへの急速な移行など、eコマースの急増にはAPIが大きく貢献しました。企業がオンラインショップ販売へと移行するために、新しいサービスや機能の追加、価格の調整、SLAの改善などをAPIによって実現しています。

APIにより、企業は必ずしも自社でアプリケーションを作成しなくても、Webサイトで多数のサービスを提供できるようになりました。さらに、APIを使用することで、従業員に豊富なツールを提供できるようにもなりました。

言い換えれば、APIは現在、最新のアプリケーション、ネットワーク、インフラのほぼすべての側面に影響を与えているといえます。今日、APIのパフォーマンスの監視を怠るということは、基本的なセキュリティプロトコルに従わない、あるいはITパフォーマンスを追跡しないことと等しいのです。

注視すべき重要なAPIメトリクス

API監視という点においては、APIが正常に機能していること、つまり設計通りにジョブが実行され、それが適切なパフォーマンスパラメーターの範囲内で行われていることを確認する必要があります。

可用性またはアップタイム:APIが利用可能であるためには、APIが動作している必要があります。アップタイムの監視は、APIの一般的なユーザビリティを判断するための最もシンプルなメトリクスです。アップタイムは、APIが利用可能な合計時間のパーセンテージとして測定されます。一般的には、アップタイムは99.9%、または99.99%を目指します。ユーザーによってはこれを反転させた統計情報を使用して、ダウンタイムのパーセンテージで報告することもあります。

エラー率:エラー率は、意図された結果をAPIが返さなかった頻度を測定します。エラーがある場合、API自体またはAPIが呼び出すサービスに問題がある可能性があります。

CPUとメモリの使用率:ホストサーバーのCPUやメモリの使用率が異常に高い値を示している場合、APIが正常に機能していない可能性があります。

APIの使用量:APIの使用量を知るには、APIが使用される頻度を測定します。1分あたりのリクエスト数、1秒あたりのリクエスト数、1秒あたりのクエリ数などを算出します。

応答時間(遅延):応答時間(遅延とも呼ばれる)は、APIが呼び出しへの応答に要した時間のことです。APIの応答時間に影響する要因は多数あるため、APIのパフォーマンスを監視する際に、これを単独で使用するだけでは信頼できるメトリクスにはなりません。

重要なAPIメトリクス

APIが正常に機能していることを確認するための重要なAPIメトリクスには、可用性、エラー率、CPUとメモリの使用率、APIの使用量、遅延などがあります。

API監視のメリット

APIは、組織のネットワーク全体で大量のデータを制御してインタラクション可能にしています。そのためAPI監視は、アプリケーションやサイトのパフォーマンス、セキュリティやアップタイム、障害からの復旧、ユーザーの監視、組織のネットワークパフォーマンスのほぼすべての領域を維持するうえで欠かせません。

API監視では以下のことが行えます。

  • 重要なAPIの可用性を追跡
  • APIの応答時間を取得して傾向を把握
  • APIが返す値とそのフォーマットを検証することでAPIの機能を確認
  • APIの障害やパフォーマンス低下を示すあらゆる兆候についてアラートを生成。これによって、チームはユーザーへの影響やSLA違反が発生する前に問題への対処が可能

API監視がサポートするユースケースとして以下が挙げられます。

  • 多段階の複雑なAPIフローのテスト
  • 世界中の複数地域における可用性と応答時間の監視
  • サードパーティAPIのパフォーマンスに関するSLAの追跡と徹底
  • APIレスポンスの正確性の検証
  • APIを使用したデータオブジェクトのCRUD(作成、読み取り、更新、削除)ライフサイクル全体のテスト
  • トークンベースの複雑なAPI認証システムの処理
  • アプリケーションステータスページの監視

API監視に伴ういくつかの課題

APIは、組織のネットワーク全域のあらゆる場面で不可欠であるため、API監視に伴う課題は、規模、エクスペリエンス、アプリケーション全般に関わってきます。

「ブラックボックス」:アプリケーションやマイクロサービスは、機密情報を保護するために作成されることがあります。そのため、APIが提供されていない、またはAPIが十分なデータや機能を公開しておらず、パフォーマンスの全体像を把握することができない場合があります。

データのサイロ化:APIは、ネットワークの内外で複数のオブジェクトをつなげるため、フォーマットの異なるさまざまな種類のデータに遭遇する可能性があります。APIによって2つの異なるデバイスで異なるフォーマットのデータを共有する場合、接続を行う前に、フォーマットが統一されていない問題を解決する必要があります。

システムのパフォーマンス:API監視ソリューションの中には、API本来の機能に影響を与えて、システムのパフォーマンスを低下させてしまうものがあります。API監視ソリューションを選定する際には、パフォーマンスを低下させないものを見極めることが重要です。

API監視を始めるには

一般的にAPI監視を行うには、この分野を専門とするベンダーのソフトウェアやハードウェアを使用します。API監視を始めるうえで最も効果的な方法は、API監視製品のベンダーを調査し、RFP(組織の提案依頼)プロセスに従うことです。プロセスを開始する際に留意すべき考慮事項をいくつかご紹介します。

APIの監視を始めるときには、以下の両方のAPIを考慮します。

  • 自社のWebサイトやネイティブアプリケーションが、重要なデータやプロセスのために利用しているAPI
  • 顧客、エンドユーザー、または開発者がデータやプロセスのために利用している自社管理のAPI

これら両方のタイプのAPIを監視するにあたっては、以下の項目をテストすることが重要です。

  • 可用性:このAPIエンドポイントは稼動しているか。エラーが返されていないか。
  • 応答時間:APIのレスポンスの速度はどれぐらいか。時間の経過に伴って応答時間が遅くなっていないか。本番前の環境よりも本番環境の方が応答時間が遅くなっていないか。
  • データの検証:APIは正確なデータを適切なフォーマットで返しているか。
  • 多段階プロセス:このAPIが返す変数を正常に保存し再利用できているか。認証は想定通りに機能しているか。このAPIが返すデータでトランザクションを完了できているか。

結論:APIでつながる世界ではAPI監視が極めて重要

ビジネスクリティカルな機能を実行するために、企業でAPIが利用されることが増えてきました。しかし、多くの企業ではAPIの監視を行っておらず、ベストプラクティスの実施も怠っています。どのようなものであってもダウンタイムには大きなコストが伴うため、企業は自らが依存しているサービスを監視して、すべてが想定通りに動作していることを確認する必要があります。利用しているサードパーティのツールをコントロールすることはできないかもしれませんが、徹底した監視を行っていれば、自社製品の稼動状態を維持するために対応が必要になった場合に、それをすぐに知ることができます。

Splunkの概要


参考リソース: