概要
API 管理とは、エンタープライズやクラウドに対してアプリケーションおよびデータを接続するアプリケーション・プログラミング・インタフェース (API) を配布、制御、分析するプロセスを指します。API とは、2 つのアプリケーションがリアルタイムでデータを共有する方法です。この通信は、アプリケーション・ソフトウェアとサービスを統合するためのツール、定義、プロトコルを介して行われます。
API 管理の目標は、API を作成または他社の API を使用する組織が、アクティビティを監視し、API を使用する開発者およびアプリケーションのニーズを満たせるようにすることです。API 管理ツールにより、API 構成の共有、アクセス制御、利用統計の収集と分析、ネットワークと API 利用者全体へのセキュリティポリシーの適用が可能になります。
組織は、変化の激しい顧客からの要求に対応できるよう、API を管理する戦略を実施しています。多くの場合、これらの組織はマイクロサービス・アーキテクチャを導入して、ソフトウェア開発の速度を上げて需要に対応しています。
マイクロサービス・アーキテクチャの中で、HTTP ベースの API は同期したインタラクションを行うために推奨される手法になりました。また、REST API は API キー、クライアントごとのスロットリング、リクエスト検証、プライベート API エンドポイントを容易にします。このような API は、すべてのマイクロサービスをつなげる接着剤の役割を果たします。このような API を管理すると、API を企業ポリシーに準拠させることができ、一部のサービスは他のサービスとは異なるセキュリティポリシーが必要となるため、適切なセキュリティレベルで統制できます。
API 管理の機能
API 管理の役割は主に、分析、アクセス制御、収益化、開発者ワークフローなど、API プログラムの制御を集中管理することです。Red Hat 3scale API Management などの API 管理ソリューションは、信頼性、柔軟性、品質、速度を改善します。このような目標を達成し、パブリック API と内部 API の両方を安全に使用できるようにするには、API 管理ソリューションは少なくともアクセス制御、レート制限、使用方法のポリシーを提供する必要があります。多くの API 管理ソリューションには、以下のような機能も搭載されているのが一般的です。
開発者ポータル: 開発者ポータルは、API 管理にとって一般的なベストプラクティスです。開発者ポータルでは通常、API のマニュアルや、サインアップおよびアカウント管理など、開発者の登録プロセスが提供されます。
API ゲートウェイ:API ゲートウェイは、すべてのクライアントにとってただ 1 つの入口となります。ゲートウェイは、ポリシーの使用を通じてクライアントが API とどのように連携するかも決定します。
- API ライフサイクル管理: API は、設計から実装を経て廃止されるまで、管理できなければなりません。Red Hat 3scale API Management は API ライフサイクル管理の分野でリーダーです。
分析: API に何が起きているか、すなわちどのユーザーまたはアプリケーションがどの API をどの程度の頻度で呼び出しているか、把握することが重要です。エラーが起きた API の数やその理由を知ることも重要です。
API 収益化のサポート: 従量制契約によって、API を支えるマイクロサービスへのアクセスを収益化します。API 管理によって、API 呼び出し数などのメトリクスに応じた従量制契約を定義できるようになります。アクセス層に応じてユーザーを分類して差別化でき、セグメント別のサービス品質を提供できます。
これらの機能は API の設計時点で考慮され、API はトラフィック管理、セキュリティ、およびアクセスポリシー適用機能を提供するセルフマネージドまたはクラウドコンポーネントを使用できます。うまく設計された API は、パフォーマンス、顧客管理、さらに将来の成長を考慮に入れて構築されたインフラストラクチャ・プラットフォーム上で、共有、セキュリティ保護、配布、制御、および収益化することができます。
API 管理とマイクロサービス
マイクロサービスと API は、新しいビジネスニーズに対処するため、急速に開発が進む画期的なアプリケーション・コンポーネントの基盤です。このアプローチはクラウドネイティブ・アプリケーション開発と呼ばれています。このアプローチにも課題がないわけではありません。
マイクロサービスを形成するうえでの主な技術上の課題は、大規模なシステムをより小さなコンポーネントに分解することです。API はこのような小型化したコンポーネントをデータソースとつなげたり相互に接続させたりすることができます。
マイクロサービス・アーキテクチャが持つもう 1 つの課題は、頻繁に変化する多数のマイクロサービスをどのように連携させるかということです。これを容易にするのが、サービス・ディスカバリーです。API 管理サービスによって、使用できるマイクロサービスを検出するために必要なディスカバリー・メカニズムが実現し、使用方法を記述したマニュアルが開発ポータルから共有されます。
マイクロサービスにはセキュリティに対する統合アプローチが必要です。セキュリティのメカニズムは API の種類によって異なります。外部に公開されたサービスには、内部サービスとは異なるセキュリティメカニズムが必要です。それほどミッションクリティカルではない API なら、一般には API キーによるシンプルな保護で十分です。外部 API やクリティカルな API の場合、OAuth などのセキュリティ強度が高いアプローチが必要になります。
API 管理プラットフォームの機能
API 管理プラットフォームは、アプリケーションの統合、管理、セキュリティ、API の監視を容易にするエンドツーエンドのサービスを提供する、いくつかの主要コンポーネントで構成されています。
API ゲートウェイは、送られてくるクライアントリクエストをインターセプトし、API 管理システムを通してリクエストを送信して、バックエンドサービスへと接続します。
開発者ポータルは、API ドキュメント、コードサンプル、ソフトウェア開発キット (SDK)、その他の API 開発者向けリソースへのセルフサービスアクセスを開発者に提供する Web ベースのダッシュボードです。
API のライフサイクル全体を管理および監視する簡単な方法を提供することも、API 管理の一部です。API ライフサイクル管理ツールには、業界標準の仕様を使用した API の設計、API のバージョン管理、変更管理プロセスの管理、API の使用状況とパフォーマンスの長期的な追跡などの機能が含まれています。
API 管理プラットフォームには、認証、認可、セキュリティポリシーを適用し、API と機密データを不正アクセスや悪用から保護するためのセキュリティおよびアクセス制御コンポーネントが含まれています。ID 管理とアクセス管理のための OAuth や OpenID などがあります。
完全な API 管理プラットフォームには、API の使用状況、パフォーマンス、動作に関する知見を提供する分析および監視ツールも含まれます。これらのツールは、API のトラフィック量、応答時間、エラー率、よく使用されるエンドポイントをリアルタイムで監視します。また、履歴データと傾向分析を提供するので、パフォーマンスのボトルネックの特定、API 利用の最適化、ビジネス目標に対する API の影響の測定に役立てることができます。
適切に機能する API 管理ソリューションは、他のシステムやパートナーと外部的に統合したり、組織のネットワーク内のシステムと内部的に統合したりするエコシステムの拡張も可能にします。
マイクロサービス向け API を設計する準備
以下の重要な質問を考えてみましょう。
- API へのアクセスをどのように制御するか
- メトリクスをどのように取得し、アラートをどのように処理するか
- 使用量の急増をどのように管理するか
- API のアップタイムは誰が責任を持つのか
- API が不適切に使用された場合はどうするか
API 管理作業の成功率をどのように測定するか
作業の効果を測定しなければ、成功したかどうかを評価することはできません。分析によって API に関するアクティビティのデータが得られますが、成功の定義を決めておかなければなりません。組織での成功を定義するには、API の 5 つの主要なパフォーマンス目的を検討してください。
- 信頼性: 信頼性とは、開発者への API の可用性です。信頼性を測定するために便利なメトリクスはダウンタイムです。API がいつも使える状態にあるかを測定します。別のメトリクスはクォータで、特定のタイムフレーム内に開発者が API 呼び出しを何回実行できるかを定義します。クォータによって API の乱用が防止され、管理作業が予測しやすくなります。一部の API プロバイダーのビジネスモデルと料金プランはクォータに基づいています。
- 柔軟性: 柔軟性は、API を導入するときに開発者が選択できる選択肢の多さを指します。API の柔軟性が高いほど、組織が API を管理する作業量 (そしてコスト) が増加します。
- 品質: 品質は、API の動作が一貫して開発者の期待に沿っていることです。開発者の API に対する満足度を測定する手段になります。
- 速度:速度はアクセスレイテンシーとスループットで測定でき、スロットリングやキャッシングなどの技法によって影響を受けます。
- コスト: コスト測定の目標は、投資から最大の価値を開発者に提供することです。上記 4 つの目的もすべて、最終的にはコストの目的に役立ちます。
Red Hat を選ぶ理由
Red Hat® OpenShift® は業界をリードするハイブリッドクラウド・アプリケーション・プラットフォームで、Kubernetes をベースとしています。テスト済みの信頼できるサービスがまとめられており、アプリケーションの開発、モダナイズ、デプロイ、実行、管理の手間を軽減します。オンプレミス、ハイブリッドクラウド、マルチクラウド、または一般的なクラウドサービスでのネイティブなデプロイのいずれにおいても、Red Hat OpenShift は AI/ML、エッジを含む極めて要求の厳しいワークロードをサポートするだけでなく、テクノロジーパートナーの膨大なエコシステムにより、デプロイとライフサイクル管理を自動化することができます。
Red Hat® OpenShift® Service Mesh はオープンソースの Istio プロジェクトをベースとしており、マイクロサービスベースのアプリケーションを接続、管理、監視する方法を統一することができます。マイクロサービスベースのアプリケーション・アーキテクチャを中心に、より効率的なエンドツーエンドの開発者エクスペリエンスを提供できるように設計されています。これにより開発チームは、アプリケーションやビジネスロジックのために専用のネットワークサービスを実装するという複雑な作業から解放されます。
Red Hat Application Foundations は、セキュリティを念頭に置き、ハイブリッドクラウド全体で大規模にアプリケーションを構築、デプロイ、運用するために必要なツールとテクノロジーの包括的なセットを提供します。Red Hat Application Foundations により、ライフサイクル全体にわたって API を共有、保護、配布、制御することができます。主な機能には、一元管理、アクセス制御、レート制限、分析、利用レポートの作成などがあります。