API監視の最も基本的なレベルでは、APIに接続されたリソースが利用可能かどうか、適切に動作しているかどうか、呼び出しに応答するかどうかをチェックします。デバイスの多様化、アプリケーションデリバリーの要となるマイクロサービス、クラウドへの移行の加速など、ネットワークを構成する要素が増え、その環境が進化するにつれ、API監視の重要性(そして複雑さ)はますます高まっています。
デジタルビジネスは、ソフトウェアを構築し提供する方法を根本的に変化させています。アプリケーションが社内ツールのみに依存していたのは過去の話です。今や、アプリケーションは外部のAPIやサードパーティのアプリケーションプロバイダーに大きく依存しており、それがさらに他のAPIやアプリケーションにも依存しています。このようなモジュラー方式は製品に柔軟性を与え、開発を迅速化しますが、その一方で問題が発生したときの対処が困難になる可能性があります。この方式では、依存の連鎖に連なるコンポーネントが1つでも問題を起こすと、それに依存するすべてのコンポーネントがドミノ倒しのように影響を受けることになります。これは、従来のクローズドシステムでは個別のインシデントとして発生するだけで済む問題でした。したがって、製品が外部APIに依存している場合は、可用性のみならず、それ以外の項目も監視していくことが重要です。パフォーマンス、データの検証やプロセス、機能変更、セキュリティなどについても目を光らせていく必要があるでしょう。
このブログ記事では、API監視の仕組み、注視すべき重要なメトリクス、API監視のメリットとこれが企業にとって重要である理由、API監視の導入方法について説明します。
APIとは、Webベースのソフトウェアアプリケーションやサービスにアクセスするためのプログラミング命令と標準規格のセットです。APIは、サービスとやり取りする方法についてのインストラクションをDevOps担当者に提供し、担当者は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監視を実装するために使用するソフトウェアで構成され、代表的なものに、JSON、PagerDuty、OAuth、Postmanなどが挙げられます。開発者が組織用のカスタムAPI監視やアプリケーション監視のプロトコルを作成できるオープンソースパッケージから、一般のユーザーが利用できる機能を数多く提供している商用パッケージまで、幅広い選択肢があります。API監視フレームワークをどのようにセットアップするべきかは、組織の個別のニーズ、特性、予算によって異なります。
APIは、さまざまなネットワーク要素が相互にやり取りするための機能を提供しています。これらの要素が接続されるポイントはエンドポイントと呼ばれます。つまり、セキュリティやパフォーマンスなどについてAPIを適切に監視するには、デフォルトでエンドポイントも含めて監視する必要があります。また、APIエンドポイントが正常に機能していても、ネットワーク内の目的の相手と通信していないかもしれません。包括的なAPI監視ソリューションを使用することで、APIエンドポイントで接続の問題が発生した際にそれを把握することができます。
ビジネスや組織が成長し、規模を拡大し、新しいサービスを提供するうえで、APIは重要な役割を担ってきました。APIを利用すれば、コアアプリケーションを変更しなくても、ユーザーの要望やニーズを満たしながらエンドユーザーエクスペリエンスを向上させることができます。また、新型コロナウイルスの感染拡大によるSaaSビジネスへの移行など、eコマースの急増にはAPIが大きく貢献しました。企業がオンラインショップ販売へと移行するために、新しいサービスや機能の追加、価格の調整、SLAの改善などをAPIによって実現しています。
APIにより、企業は必ずしも自社でアプリケーションを作成しなくても、Webサイトで多数のサービスを提供できるようになりました。さらに、APIを使用することで、従業員に豊富なツールを提供できるようにもなりました。
言い換えれば、APIは現在、最新のアプリケーション、ネットワーク、インフラのほぼすべての側面に影響を与えているといえます。今日、APIのパフォーマンスの監視を怠るということは、基本的なセキュリティプロトコルに従わない、あるいはITパフォーマンスを追跡しないことと等しいのです。
API監視という点においては、APIが正常に機能していること、つまり設計通りにジョブが実行され、それが適切なパフォーマンスパラメーターの範囲内で行われていることを確認する必要があります。
APIが正常に機能していることを確認するための重要なAPIメトリクスには、可用性、エラー率、CPUとメモリの使用率、APIの使用量、遅延などがあります。
APIは、組織のネットワーク全体で大量のデータを制御してインタラクションを可能にしています。そのためAPI監視は、アプリケーションやサイトのパフォーマンス、セキュリティやアップタイム、障害からの復旧、ユーザーの監視、組織のネットワークパフォーマンスのほぼすべての領域を維持するうえで欠かせません。
API監視では以下のことが行えます。
API監視がサポートするユースケースとして以下が挙げられます。
APIは、組織のネットワーク全域のあらゆる場面で不可欠であるため、API監視に伴う課題は、規模、エクスペリエンス、アプリケーション全般に関わってきます。
一般的にAPI監視を行うには、この分野を専門とするベンダーのソフトウェアやハードウェアを使用します。API監視を始めるうえで最も効果的な方法は、API監視製品のベンダーを調査し、RFP(組織の提案依頼)プロセスに従うことです。プロセスを開始する際に留意すべき考慮事項をいくつかご紹介します。
APIの監視を始めるときには、以下の両方のAPIを考慮します。
これら両方のタイプのAPIを監視するにあたっては、以下の項目をテストすることが重要です。
ビジネスクリティカルな機能を実行するために、企業でAPIが利用されることが増えてきました。しかし、多くの企業ではAPIの監視を行っておらず、ベストプラクティスの実施も怠っています。どのようなものであってもダウンタイムには大きなコストが伴うため、企業は自らが依存しているサービスを監視して、すべてが想定通りに動作していることを確認する必要があります。利用しているサードパーティのツールをコントロールすることはできないかもしれませんが、徹底した監視を行っていれば、自社製品の稼動状態を維持するために対応が必要になった場合に、それをすぐに知ることができます。
このブログはこちらの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、ssg-blogs@splunk.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。