API ゲートウェイとは何ですか?

API ゲートウェイは、クライアントからの API リクエストを受け入れ、定義されたポリシーに基づいて処理し、適切なサービスに送信し、応答を組み合わせてユーザー エクスペリエンスを簡素化します。 通常、複数のマイクロサービスを呼び出して結果を集約することでリクエストを処理します。 また、従来の展開におけるプロトコル間の変換も可能です。

API ゲートウェイは、クライアントからの API リクエストを受け入れ、定義されたポリシーに基づいて処理し、適切なサービスに送信し、応答を組み合わせてユーザー エクスペリエンスを簡素化します。 通常、複数のマイクロサービスを呼び出して結果を集約することでリクエストを処理します。 また、従来の展開におけるプロトコル間の変換も可能です。

画像の代替テキストはこちら

API ゲートウェイの機能

API ゲートウェイは一般的に次のような機能を実装します。

  • セキュリティポリシー – 認証、承認、アクセス制御、暗号化
  • ルーティング ポリシー – ルーティング、レート制限、リクエスト/レスポンス操作、サーキット ブレーカー、ブルーグリーンおよびカナリア デプロイメント、A/B テスト、負荷分散、ヘルス チェック、カスタム エラー処理
  • 可観測性ポリシー – リアルタイムおよび履歴のメトリクス、ログ記録、トレース

アプリレベルおよび API レベルのセキュリティを強化するために、API ゲートウェイに Web アプリケーション ファイアウォール (WAF) とサービス拒否 (DoS) 保護を追加できます。

API ゲートウェイの利点

アプリ配信用の API ゲートウェイを導入すると、次のことが可能になります。

  • 内部アプリケーションアーキテクチャをカプセル化し、各クライアントタイプに合わせたAPIを提供することで、複雑さを軽減し、アプリのリリースを高速化します。
  • 制御ポイントを一元化し、非機能要件をインフラストラクチャ層にオフロードすることで、リクエスト処理とポリシー適用を合理化および簡素化します。
  • 詳細なリアルタイムおよび履歴の指標とダッシュボードでトラブルシューティングを簡素化

API ゲートウェイとマイクロサービス アーキテクチャ

マイクロサービス ベースのアプリケーションの場合、API ゲートウェイはシステムへの単一のエントリ ポイントとして機能します。 これはマイクロサービスの前に配置され、アプリの複雑さをクライアントから切り離すことで、クライアント実装とマイクロサービス アプリの両方を簡素化します。

マイクロサービス アーキテクチャでは、API ゲートウェイがリクエストのルーティング、構成、およびポリシーの適用を担当します。 一部のリクエストは適切なバックエンド サービスにルーティングするだけで処理され、その他のリクエストは複数のバックエンド サービスを呼び出して結果を集約することで処理されます。

API ゲートウェイは、認証、承認、監視、負荷分散、応答処理などのマイクロサービス向けのその他の機能を提供し、非機能要件の実装をインフラストラクチャ層にオフロードし、開発者がコアビジネスロジックに集中できるようにして、アプリのリリースを高速化します。

API ゲートウェイを使用したマイクロサービスの構築の詳細については、当社のブログをご覧ください。

Kubernetes 向け API ゲートウェイ

コンテナはマイクロサービスを実行する最も効率的な方法であり、Kubernetes はコンテナ化されたアプリケーションとワークロードをデプロイおよび管理するための事実上の標準です。

システム アーキテクチャとアプリ配信の要件に応じて、API ゲートウェイは、Kubernetes クラスターの前にロード バランサーとして (マルチ クラスター レベル)、エッジに Ingress コントローラーとして (クラスター レベル)、またはクラスター内にサービス メッシュとして (サービス レベル) デプロイできます。

画像の代替テキストはこちら

エッジおよび Kubernetes クラスター内での API ゲートウェイのデプロイメントでは、Kubernetes ネイティブ ツールを API ゲートウェイとして使用するのがベスト プラクティスです。 このようなツールは Kubernetes API と緊密に統合されており、YAML をサポートし、標準の Kubernetes CLI を通じて構成できます。例としては、 NGINX Ingress ControllerNGINX Service Mesh などがあります。

APIゲートウェイとKubernetesの詳細については、 API ゲートウェイ vs. Ingress コントローラー vs. サービスメッシュ 私たちのブログで。

API ゲートウェイと Ingress ゲートウェイまたは Ingress コントローラ

Ingress ゲートウェイとIngress コントローラーは、 Kubernetes Ingress API の一部であるIngress オブジェクトを実装し、Kubernetes で実行されているアプリケーションを外部クライアントに公開するツールです。 ユーザーとアプリケーション間の通信 (ユーザーとサービス間または North-South 接続) を管理します。 ただし、Ingress オブジェクト自体の機能は非常に制限されています。 たとえば、それに付随するセキュリティ ポリシーの定義はサポートされていません。 その結果、多くのベンダーは、Ingress コントローラーの機能を拡張し、Ingress コントローラーを API ゲートウェイとして使用するなど、進化する顧客のニーズと要件を満たすために、カスタム リソース定義 (CRD) を作成しています。

たとえば、 NGINX Ingress Controller は、 VirtualServer 、 VirtualServerRouteTransportServer 、およびPolicyカスタム リソースを使用して、Kubernetes クラスターのエッジでフル機能の API ゲートウェイとして使用できます。

API ゲートウェイはゲートウェイ API と同じではありません

名前は似ていますが、API ゲートウェイはKubernetes Gateway APIと同じではありません。Kubernetes Gateway APIは、Kubernetes のサービス ネットワーキングを改善および標準化するために Kubernetes コミュニティによって管理されているオープン ソース プロジェクトです。 Gateway API 仕様は、 Kubernetes Ingress APIから進化したもので、リクエスト処理のためのきめ細かいポリシーを定義したり、複数のチームやロールにわたって構成の制御を委任したりする機能など、Ingress リソースをデプロイして Kubernetes アプリを本番環境で公開する際のさまざまな課題を解決します。

NGINX Kubernetes Gatewayなどの Gateway API 仕様に基づいて構築されたツールは、特定のマイクロサービスへのリクエストのルーティング、トラフィック ポリシーの実装、カナリア デプロイメントとブルーグリーン デプロイメントの有効化などのユース ケースの API ゲートウェイとして使用できます。

NGINX の Jenn Gile がAPI ゲートウェイと Kubernetes Gateway API の違いを説明するこの短いビデオをご覧ください。

サービス メッシュと API ゲートウェイ

サービス メッシュは、Kubernetes クラスター内のサービス間の通信 (サービス間または東西接続) を制御するインフラストラクチャ レイヤーです。 サービス メッシュは、Kubernetes で実行されるサービスに、負荷分散、認証、承認、アクセス制御、暗号化、可観測性、接続を管理するための高度なパターン (サーキット ブレーカー、A/B テスト、ブルーグリーン デプロイメントとカナリア デプロイメント) などのコア機能を提供して、通信の高速性、信頼性、安全性を確保します。

サービス メッシュは、アプリやサービスの近くにデプロイされ、Kubernetes でのサービス間通信のための軽量でありながら包括的な分散 API ゲートウェイとして使用できます。

サービス メッシュの詳細については、弊社のブログの「サービス メッシュの選択方法」をご覧ください。

API ゲートウェイと API 管理

API ゲートウェイAPI 管理という用語は、同じ機能を説明するためによく使用されますが、これは誤りです。

API ゲートウェイは、対象のアプリケーションやサービスへのクライアント要求を表す API 呼び出しのデータプレーンエントリ ポイントです。 通常、認証、承認、アクセス制御、SSL/TLS オフロード、ルーティング、負荷分散などの定義されたポリシーに基づいて要求処理を実行します。

API 管理とは、個々の API を展開、文書化、操作、監視するプロセスです。 これは通常、API ゲートウェイと開発者ポータルにポリシーを定義して適用する管理プレーン ソフトウェア (API マネージャーなど) によって実現されます。

ビジネス要件と機能要件に応じて、API ゲートウェイは、データ プレーン内のスタンドアロン コンポーネントとして、またはF5 NGINX Management Suite API Connectivity Managerなどの統合 API 管理ソリューションの一部として導入できます。

API ゲートウェイを選択する際の考慮事項

API ゲートウェイの要件を決定する際に考慮すべき重要な要素がいくつかあります。

  • アーキテクチャ – API ゲートウェイをデプロイする場所は、ツールの選択に影響を与える可能性があります。また、クラウド プロバイダーの組み込みオプションを使用するかどうかの決定も影響を与える可能性があります。 プラットフォームやランタイムに依存しない API ゲートウェイの柔軟性が必要ですか?
  • パフォーマンス – トラフィック量の多い Web サイトやアプリケーションにとって、パフォーマンスは非常に重要です。 あなたの API ゲートウェイは、必要な高スループットと低レイテンシを実現していますか?
  • スケーラビリティ – API ゲートウェイは、増加するトラフィック需要を満たすために簡単に拡張できる必要があります。 API ゲートウェイは、API が常に高速かつ利用可能であることを保証するために、垂直方向 (高スループット) と水平方向 (高可用性) のスケーリングをサポートしていますか?
  • セキュリティ – API ゲートウェイはゼロトラスト アーキテクチャの重要な部分です。 貴社の API ゲートウェイは、アクセス制御 (AuthN/AuthZ)、mTLS、および統合 WAF や確実なセキュリティのための OpenAPI スキーマ検証などの高度なセキュリティ機能を提供していますか?
  • コスト - API ゲートウェイの総所有コスト (TCO) を理解します。 カスタム ソリューションを構築して維持する場合と、エンタープライズ グレードの API ゲートウェイを購入する場合のコストとトレードオフは何ですか?

NGINX がどのように役立つか

NGINX は、ユースケースと展開パターンに応じて、API ゲートウェイを展開および運用するためのいくつかのオプションを提供します。
Kubernetes ネイティブ ツール:

  • NGINX Ingress Controller – APIゲートウェイ、アイデンティティ、可観測性機能を使用してKubernetesクラスターのエッジでアプリの接続を管理します。
  • NGINX Service Mesh – サービス間の接続、セキュリティ、オーケストレーション、可観測性を実現する開発者フレンドリーなソリューション

まず、NGINX App Protect WAF および DoS を備えた NGINX Ingress Controller の30 日間無料トライアルをリクエストし、常に無料の NGINX Service Meshをダウンロードしてください

ユニバーサルツール:

  • APIゲートウェイとしてのNGINX Plus – クラウド、オンプレミス、エッジ環境に導入できる軽量で高性能なAPIゲートウェイ
  • F5 NGINX Management Suite API Connectivity Manager – API管理、ガバナンス、セキュリティのための開発者向けツールでAPIゲートウェイを導入および運用

NGINX Plus を API ゲートウェイとして使用する方法の詳細については、 30 日間の無料トライアルをリクエストし、ブログの「NGINX を API ゲートウェイとしてデプロイする」を参照してください。 NGINX Management Suite を試すには、 30 日間の無料トライアルをリクエストしてください。