API ゲートウェイと API プロキシの違いを理解する

この記事では、API ゲートウェイと API プロキシおよびリバース プロキシの違いについて説明します。API プロキシやリバース プロキシと比較した API ゲートウェイの利点、使用例、プロジェクトに適したツールについて取り上げます。

API プロキシとは

API プロキシは、クライアントと API の仲介者のような役割を果たします。API への一元管理されたアクセス ポイントを提供し、API を変更することなく、セキュリティ、キャッシング、レート制限などの機能を API に追加できます。プロキシは、リクエスト パスやユーザーに基づいて異なるバックエンド サービスにリクエストをルーティングし、認証 (キー認証、OAuth フローなど) やトラフィック管理 (レート制限など) などのタスクを実行することが可能です。

API プロキシの一般的な使用例

API プロキシの一般的な使用例には次のものがあります。

  • リクエストの転送: プロキシ (API プロキシを含む) の主な役割は、受信したリクエストを適切なバックエンドに転送することです。API プロキシの場合、API またはサービスに転送します。
  • セキュリティ: API に基本レベルのセキュリティを追加します。
  • キャッシング: API からのレスポンスをキャッシュし、後続のリクエストの応答時間を短縮し、全体的なパフォーマンスを向上します。
  • 負荷分散: サーバー負荷、ネットワーク遅延、地理的位置などの要因に基づいて、リクエストを適切なバックエンド サーバーにルーティングすることで、負荷分散機能を提供します。
  • SSL 終了: API に代わって SSL 終了処理を行います。

API プロキシと API ゲートウェイの違い

API プロキシと API ゲートウェイはどちらも既存の API の前に位置し、ゲートキーパーのような役割を果たしますが、能力には大きな違いがあります。ほとんどの場合、API ゲートウェイは API プロキシが行うすべてのこととそれ以上のことができます。以下の図に示すように、API プロキシは API ゲートウェイの機能のサブセットのみを提供します。

API ゲートウェイと API プロキシの機能

どのような場合にプロキシを使って API を公開し、どのような場合に API ゲートウェイを使うべきかは、いくつかの要因に依存します。

  • いくつの API を公開する予定なのか?
  • API を外部 (インターネット上) に公開するのか、組織内部だけに公開するのか?
  • API に代わってプロキシやゲートウェイにどのような機能を処理させるのか?
  • 開発者エクスペリエンスはどの程度重要か?

API プロキシと比較した API ゲートウェイの利点

API プロキシは既存の API に非常に特殊な (そしてシンプルな) 機能を追加する場合に便利で、API ゲートウェイは複数の API を一元的に管理および保護する場合に役立ちます。

API プロキシは一般に、クライアントからの API リクエストをバックエンド API に転送するシンプルなプロキシであり、API ゲートウェイはより高度な機能と複数の API を一元管理するプラットフォームを提供します。

API プロキシと比較した API ゲートウェイの主な利点は、以下のとおりです。

  • 完全なライフサイクル管理を含む高度な API 機能: API ゲートウェイは、初期開発段階 (モッキング サービスなど) からバージョン管理、リクエスト/レスポンス変換まで、API ライフサイクル全体を管理する包括的な機能を提供します。
  • 高度なセキュリティ: API プロキシは API の基本的なセキュリティ機能を提供しますが、API ゲートウェイは、組織内の既存の IDP との統合や、OAuth フローと JWT トークンの処理など、より多くのセキュリティ機能を提供します。
  • 開発者エクスペリエンス: API を外部の顧客/パートナーに公開する場合、または組織内に公開する場合、API ゲートウェイには、API 仕様の公開に使用できる専用の開発者ポータル、開発者アプリケーションの登録処理、公開した API の試用など、開発者エクスペリエンスを向上するさまざまな機能が備わっています。

リバース プロキシとは

リバース プロキシは、クライアントと Web サーバの間に位置し、サーバーに代わってリクエストとレスポンスを処理します。クライアントからのリクエストを受け取り、適切なバックエンド サーバーに転送し、対応するレスポンスをクライアントに送り返します。また、負荷分散、キャッシング、セキュリティなどの追加機能を提供します。

リバース プロキシの動作は、クライアントがリクエストを送信してから、リバース プロキシを経由して Web サーバーから最終的なレスポンスを受け取るまでの、以下の一連のステップと考えることができます。

  1. クライアントがリクエストを Web サーバーに送ります。クライアントは認識せずとも、リバース プロキシがサーバーに代わって、このリクエストを受け取ります。
  2. リバース プロキシは、リクエストをチェックして転送先を決定します。場合によっては、負荷分散アルゴリズムが使用されます。
  3. リバース プロキシは、リクエストを適切なサーバーに転送します。
  4. サーバーはリクエストを処理してレスポンスを生成し、リバース プロキシに送り返します。
  5. リバース プロキシはレスポンスを受け取り、オプションでレスポンスをキャッシング、フィルタリング、または変更するなどの追加処理を実行します。
  6. リバース プロキシは、あたかもサーバーから送られてきたかのように、レスポンスをクライアントに送り返します。

リバース プロキシの仕組み

リバース プロキシの一般的な使用例

  • 負荷分散: 受信トラフィックを複数のバックエンド サーバーに分散して、アプリケーションのパフォーマンス、可用性、およびスケーラビリティを向上します。
  • SSL/TLS 終了: バックエンドの Web サーバーに代わって SSL/TLS の暗号化と復号化を処理します。
  • 圧縮: 送信されるコンテンツを圧縮して、必要な帯域幅を減らし、パフォーマンスを向上します。
  • キャッシング: 頻繁にアクセスされるコンテンツをキャッシュして、バックエンド サーバーの負荷を軽減し、応答時間の改善します。
  • セキュリティ: 悪意のあるトラフィックをフィルタリングおよびブロックし、特定のリソースへのアクセスを制限し、認証および承認ポリシーを実施して、追加のセキュリティ レイヤーを提供します。

API ゲートウェイとリバース プロキシの違い

API ゲートウェイとリバース プロキシには重複する機能がありますが、その目的は異なります。API ゲートウェイが API へのフロント ドアのような役割を果たすのに対し、リバース プロキシは Web アプリケーションへのフロント ドアとなります。

機能に関しては、API ゲートウェイは次のような API 管理機能を提供します。

  • API のバージョン管理と変換
  • 認証と認可 (OAuth、JWT など)
  • レート制限とスロットリング
  • キャッシング
  • ロギングと API モニタリング
  • リクエスト/レスポンスの変換
  • サービス ディスカバリ
  • サーキット ブレーカーとフォールト トレランス

一方、リバース プロキシは、API や Web サーバーなど、あらゆるタイプの Web サービスに適用できる、より一般的な次のような機能を提供します。

  • 負荷分散
  • SSL オフローディング/終了
  • キャッシング
  • 圧縮
  • URL 書き換え
  • セキュリティ機能 (悪意のあるリクエストのフィルタリング、DDoS 攻撃への対応など)

API ゲートウェイはリバース プロキシよりも広範な機能セットを備えているため、通常、より多くのセットアップと保守作業が必要になります。API ゲートウェイを稼働させるには、一般に、API へのルートを定義し、認証を設定し、その他の API 関連のポリシーを設定する必要があります。一方、リバース プロキシはより簡単な方法でセットアップできます。

リバース プロキシと比較した API ゲートウェイの利点

API ゲートウェイは、特に API 管理に関して、リバース プロキシよりも高度な機能を提供します。主な利点として、次のようなものがあります。

  • 開発者エクスペリエンス: 多くの場合、内部および外部の開発者に、API の使用を強化する、より優れたエクスペリエンスを提供します。これらの機能には、開発者ポータル、登録機能、モック レスポンスなどがあります。
  • API 固有の高度な機能: API ゲートウェイは API ライフサイクル全体を管理する高度な機能を提供します。以下の機能は、リバース プロキシでは利用できません。
    • バージョン管理を含む API ライフサイクル管理
    • 既存の IDP システムとの統合を含む認証/認可
    • 階層に基づくレート制限またはスロットリング
    • リクエスト/レスポンスのシンプルな変換
  • API の一元管理: リバース プロキシと API ゲートウェイはどちらも API への単一のアクセス ポイントとして機能しますが、すべての API の一貫した管理と制御に関しては、API ゲートウェイのほうがはるかに優れています。API ゲートウェイは、ポリシーの適用、利用状況の監視、すべての異なるサービス間での一貫性の維持を容易にします。

まとめ

API ゲートウェイ、API プロキシ、リバース プロキシのいずれかを選択するには、使用例を確認することが重要です。

標準化された方法で複数の API を管理し、完全なライフサイクル管理と開発者エクスペリエンスの向上を実現することが主な目的であれば、API ゲートウェイが提供する高度な機能が必要になります。しかし、Web トラフィックを処理する汎用ソリューションを探しているのであれば、リバース プロキシのほうが適している可能性があります。


Kong Enterprise の概要、価格、およびライセンス体系などの詳細は、こちらを参照してください。


参照記事: 2023 年 4 月 25 日
Deepak Grewal
© Kong Inc. 2023
API Gateway vs API Proxy: Understanding The Differences

タイトルとURLをコピーしました