DEVOPS

可用性以外でもAPIを監視すべき理由

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

注:オーナーが誰かは関係ありません。ユーザーに影響するものはすべて注視する必要があります。

可用性の監視

最も基本的なレベルでは、API監視はリソースが利用可能かどうか(つまり呼び出しに応答するかどうか)をチェックします。しかし、アプリケーションが他のアプリケーションと相互依存する度合いが高まっていることを考えると、APIが依存しているリソースの可用性を監視することも真剣に検討する必要があります。依存関係の連鎖に障害が発生している可能性が通知されれば、他の場所で障害が発生したとしても、自社のサイトやアプリケーションはオンライン状態を維持できるように適切な措置を講じることができます。

パフォーマンスの監視

APIが呼び出しに正常に応答することは確認できました。これでもう十分かといえば、そんなことはありません。たとえAPIが呼び出しに正常に応答したとしても、パフォーマンスが良好である必要があります。応答速度はどれぐらいでしょうか?まだそれなりの速度であったとしても、応答時間が低下していませんか?開発環境か本番環境かなど、環境が異なるとAPIのパフォーマンスが変わりますか?

これらの問題はいずれも、呼び出しているAPIが原因か、その先のAPIが原因かにかかわらず、製品の動作速度の低下につながります。APIのパフォーマンスをコントロールすることはできないかもしれませんが、アプリケーションでAPIを利用するかどうか、あるいはデータを返す方法について一時的な変更を加えるかなど、パフォーマンスの改善のために検討できることはあります。

データ検証および多段階プロセスの監視

APIが利用可能でリクエストに応答していても、送られてくるデータが正しくなかったり、想定外のフォーマットであるといったこともあり得ます。そのため、テストを定期的に行って、タスクの実行に必要なデータを取得できているかどうかを確認する必要があります。

また、応答の受信後に実行される多段階のプロセスが想定通りに動作しているかどうかも確認する必要があります。APIへの呼び出し回数を減らすために、呼び出しで取得されるデータはキャッシュできているか、認証は想定通りに機能しているかなどについて確認します。

機能変更の監視

外部サービスのパフォーマンスに依存する機能がある場合は、アプリケーションとそのサービスとの互換性が保たれているか、確かめる必要があるでしょう。変更が新規リリースによるものか、バグフィックスによるものかにかかわらず、サービスの世代交代があるとベースコードが動作しなくなることがあります。

セキュリティの監視

パッケージを製品で使用したことがあったり、製品に含めたりしている場合や、インテグレーションを使用している場合には注意が必要です。製品にバグが紛れ込む可能性があるだけではありません。外部ソースでセキュリティ侵害があったり、適切な予防措置が講じられていなかったりすると、セキュリティの脆弱性が発生するおそれがあります。たとえば、写真のアップロード機能の実装にサードパーティのパッケージを使用している場合、そのパッケージでファイル形式のチェックが確実に行われ、写真以外のファイルがアップロードされないようにしていなければ、誰かが実行ファイルをアップロードして、システムで悪意あるプログラムを実行しようとするかもしれません。

結論

どのような場合でもダウンタイムには大きなコストが伴うため、依存しているサービスも監視して、すべてが想定通りに動作していることを確認する必要があります。利用しているサードパーティのツールをコントロールすることはできないかもしれませんが、問題を想定し、適切なコードを作成して、最悪の事態に備えることはできます。さらに、徹底した監視を行っていれば、自社製品の稼働状態を維持するために対応が必要になった場合に、それをすぐに知ることができます。

デジタルエクスペリエンス監視の詳細については『デジタルエクスペリエンス監視ソリューションの概要』をご覧ください。

Splunk
Posted by

Splunk

世界の様々な企業が、デジタルシステムの安全性と信頼性を維持するためにSplunkを信頼しご利用いただいています。Splunkのソフトウェアソリューションとサービスは、ビジネスの継続に関わる重大な問題を未然に防ぎ、回復力を高め、イノベーションを加速します。Splunkの機能Splunkが選ばれる理由をご覧ください。

TAGS
Show All Tags
Show Less Tags