APIゲートウェイは、クライアントからAPIリクエストを受け取り、定義されたポリシーに基づいて処理して、適切なサービスに送り、応答を結合して、簡素化されたユーザー エクスペリエンスを実現します。通常、複数のマイクロサービスを呼び出し、結果を集約することでリクエストを処理します。また、従来の導入におけるプロトコル間で変換を行うこともできます。
APIゲートウェイは、クライアントからAPIリクエストを受け取り、定義されたポリシーに基づいて処理して、適切なサービスに送り、応答を結合して、簡素化されたユーザー エクスペリエンスを実現します。通常、複数のマイクロサービスを呼び出し、結果を集約することでリクエストを処理します。また、従来の導入におけるプロトコル間で変換を行うこともできます。
APIゲートウェイは通常、次のような機能を実装します。
追加のアプリケーションレベルおよびAPIレベルのセキュリティのため、Web Application Firewall(WAF)とサービス拒否(DoS)対策によってAPIゲートウェイを強化できます。
アプリケーション デリバリ向けにAPIゲートウェイを導入すると、次のことに役立ちます。
マイクロサービスベースのアプリケーションの場合、APIゲートウェイはシステムへの単一のエントリ ポイントとして機能します。これはマイクロサービスの前に設置され、アプリケーションの複雑性をクライアントから切り離すことで、クライアントの実装とマイクロサービス アプリケーションの両方を簡素化します。
マイクロサービス アーキテクチャでは、APIゲートウェイはリクエスト ルーティング、構成、ポリシーの施行を担当します。一部のリクエストは適切なバックエンド サービスにルーティングするだけで処理され、その他のリクエストは複数のバックエンド サービスを呼び出して結果を集約することで処理されます。
APIゲートウェイは、認証、認可、監視、ロード バランシング、応答処理などのマイクロサービスの他の機能を提供することで、非機能要件の実装をインフラストラクチャ レイヤにオフロードし、開発者がコア ビジネス ロジックに集中できるようにして、アプリケーションのリリースを迅速化します。
詳細については、当社のブログ「APIゲートウェイを使用したマイクロサービスの構築」をご覧ください。
コンテナはマイクロサービスを最も効率的に実行する方法であり、Kubernetesはコンテナ化されたアプリケーションとワークロードを導入および管理するためのデファクト スタンダードとなっています。
システム アーキテクチャとアプリケーション デリバリの要件に応じて、APIゲートウェイは、Kubernetesクラスタの前にロード バランサ(マルチクラスタ レベル)として、そのエッジにIngressコントローラ(クラスタ レベル)として、またはその内側にサービス メッシュ(サービス レベル)として導入できます。
エッジおよびKubernetesクラスタ内にAPIゲートウェイを導入する場合は、Kubernetesネイティブ ツールをAPIゲートウェイとして使用することがベスト プラクティスです。このようなツールはKubernetes APIと緊密に統合されています。また、YAMLをサポートしており、標準のKubernetes CLIを通じて構成できます。例として、NGINX Ingress ControllerやNGINX Service Meshなどがあります。
APIゲートウェイとKubernetesの詳細については、当社のブログ「APIゲートウェイ、Ingressコントローラ、サービス メッシュの比較」をご覧ください。
IngressゲートウェイとIngressコントローラは、Kubernetes Ingress APIの一部であるIngressオブジェクトを実装し、Kubernetesで実行されているアプリケーションを外部クライアントに公開するツールです。ユーザーとアプリケーション間の通信(ユーザーとサービスまたは南北の接続性)を管理します。ただし、Ingressオブジェクト自体の機能は非常に限られています。たとえば、それに添付されるセキュリティ ポリシーの定義はサポートされていません。その結果、多くのベンダーはカスタム リソース定義(CRD)を作成し、Ingressコントローラの機能を拡張して、IngressコントローラをAPIゲートウェイとして使用するなど、進化する顧客のニーズや要件を満たすようにしています。
たとえば、NGINX Ingress Controllerは、VirtualServerとVirtualServerRoute、TransportServer、Policyカスタム リソースを備えたKubernetesクラスタのエッジでフル機能のAPIゲートウェイとして使用できます。
名前は似ていますが、APIゲートウェイはKubernetes Gateway APIと同じではありません。Kubernetes Gateway APIは、Kubernetesコミュニティによって管理され、Kubernetesのサービス ネットワーキングを改善および標準化するオープン ソース プロジェクトです。Gateway API仕様は、Kubernetes Ingress APIから進化し、本番環境でKubernetesアプリケーションを公開するためのIngressリソースの導入に関するさまざまな課題を解決します。これには、リクエスト処理のための詳細に設定されたポリシーを定義したり、複数のチームやロールにわたる構成の制御を委任したりする機能が含まれます。
NGINX Kubernetes GatewayなどのGateway API仕様に基づいて構築されたツールは、特定のマイクロサービスへのリクエストのルーティング、トラフィック ポリシーの実装、カナリア デプロイメントとブルーグリーン デプロイメントの有効化などのユース ケースに対するAPIゲートウェイとして使用できます。
NGINXのJenn GileがAPIゲートウェイとKubernetes Gateway APIの違いを説明しているこちらのクイック ビデオをご覧ください。
サービス メッシュは、Kubernetesクラスタ内のサービス間の通信(サービス間または東西の接続性)を制御するインフラストラクチャ レイヤです。サービス メッシュは、ロード バランシング、認証、認可、アクセス制御、暗号化、可観測性、接続性の管理のための高度なパターン(サーキット ブレーカー、A/Bテスト、ブルーグリーン デプロイメントおよびカナリア デプロイメント)など、Kubernetesで実行されるサービスのコア機能を提供し、通信が高速で、信頼でき、安全であることを保証します。
サービス メッシュは、アプリケーションやサービスの近くに導入されるため、Kubernetesでのサービス間通信のための、軽量でありながら包括的な分散APIゲートウェイとして使用できます。
サービス メッシュの詳細については、当社のブログ「サービス メッシュの選択方法」をご覧ください。
APIゲートウェイとAPI管理という用語は、多くの場合、同じ機能を説明する際に「間違って」使用されています。
APIゲートウェイは、ターゲット アプリケーションやサービスへのクライアント リクエストを表すAPI呼び出しのデータプレーン エントリ ポイントです。通常は、認証、認可、アクセス制御、SSL/TLSオフロード、ルーティング、ロード バランシングなどの定義されたポリシーに基づいてリクエスト処理を実行します。
API管理は、個々のAPIを導入、文書化、運用、監視するプロセスです。これは通常、ポリシーを定義してAPIゲートウェイと開発者ポータルに適用する管理プレーン ソフトウェア(APIマネージャーなど)によって実現されます。
ビジネス要件と機能要件に応じて、APIゲートウェイをデータ プレーン内のスタンドアロン コンポーネントとして、または統合されたAPI管理ソリューション(F5 NGINX Management Suite API Connectivity Managerなど)の一部として導入できます。
APIゲートウェイの要件を決定する際には、考慮すべき重要な要素がいくつかあります。
NGINXは、ユース ケースと導入パターンに応じて、APIゲートウェイを導入して運用するため、以下にいくつかのオプションを提供しています。
Kubernetesネイティブ ツール:
まずは、NGINX App Protect WAF/DoSを備えたNGINX Ingress Controllerの30日間無料のトライアル版をぜひお申し込みいただき、常に無料のNGINX Service Meshをダウンロードしてください。
共通のツール:
APIゲートウェイとしてのNGINX Plusの使用については、30日間無料のトライアル版をお申込みいただくと共に、当社のブログ「APIゲートウェイとしてNGINXを導入する」をご覧ください。NGINX Management Suiteをお試しになるには、30日間無料のトライアル版をぜひお申し込みください。
マンガ解説
APIへのサイバー攻撃と情報漏洩を防御しよう ›
無料eBookダウンロード
NGINXクックブック設定レシピ集(最新2024年版)›
ダウンロード資料
分散環境におけるWebアプリケーションとAPIの保護 ›
ケーススタディ
お客様とパートナーの事例 ›
カスタマーストーリー
McGraw Hillがマルチクラウド管理を簡素化 ›
プレスリリース
F5、AI時代のアプリケーション セキュリティを変革 ›
ソリューションエリア
エンタープライズ アプリケーション セキュリティおよびデリバリ ソリューション ›
ビデオデモ
APIディスカバリー、スキーマ検証、保護 ›
NGINXは、APIの取り組みのどの時点でも対応できるさまざまな無料リソースを提供しています。