2025年06月06日

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

英語によるオリジナルはこちらでご覧いただけます。

この記事では、APIゲートウェイとAPIプロキシとの違いや、リバースプロキシとの違いについて説明します。また、それぞれのユースケースを紹介するほか、手元のプロジェクトに最適なツールの選び方やAPIプロキシやリバースプロキシにはないAPIゲートウェイのメリットについて取り上げていきます。

APIプロキシとは

APIプロキシは、クライアントとAPIの仲介役として、APIアクセスのエントリポイントを一元化します。あわせて、APIの付加機能となるセキュリティ、キャッシュ、レート制限などの機能をAPI自体に修正を加えることなく適用できます。さらに、パスやユーザーに基づいて適切なバックエンドサービス宛てにリクエストをルーティングするとともに、認証(キー認証、OAuthフローなど)やトラフィック管理(レート制限など)の処理を実行できます。

APIプロキシの主なユースケース

APIプロキシの主なユースケースは次のとおりです。

  • リクエストの転送:プロキシ(APIプロキシを含む)の最も重要な機能は、受信したリクエストを適切なバックエンドに転送することです。APIプロキシの場合は、リクエストは基盤となっているAPIやサービスに転送されます。
  • セキュリティ:APIプロキシを使うことで、APIに基本的なセキュリティを装備できます。
  • キャッシュ:APIからのレスポンスをAPIプロキシにキャッシュできます。これにより、その後のリクエストの応答時間を短縮し、全体のパフォーマンスを向上できます。
  • ロードバランシング:APIプロキシには、ロードバランシング機能も備わっています。サーバーの負荷、ネットワークレイテンシ、地理的な場所などの要素に基づいて、バックエンドの適切なサーバーにリクエストをルーティングします。
  • SSL終端処理:APIプロキシは、基盤となっている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ゲートウェイの方がはるかに豊富な機能を備えています。例えば、社内で導入済みのIDプロバイダ(IDP)との統合や、OAuthやJWTトークンの処理などに対応しています。
  • 開発体験:APIゲートウェイは、APIを社外(顧客・パートナー)向けや社内向けに公開するときの開発体験を強化する多彩な機能を備えています。例えば、専用の開発者ポータルを利用して、APIの仕様の公開、開発者のアプリケーションの登録、公開したAPIのテストなどを実施できます。

リバースプロキシとは

リバースプロキシとは、クライアントとウェブサーバーの仲立ちとして、リクエストとレスポンスをサーバーの代わりに処理するプロキシです。クライアントからのリクエストを途中で受け取って、適切なバックエンドサーバーに転送し、それに対するレスポンスをクライアントに返します。あわせて、ロードバランシング、キャッシュ、セキュリティなどの付加機能も適用できます。

リバースプロキシの動作は次のような流れで捉えることができます。クライアントが最初にリクエストを送信してから、ウェブサーバーのレスポンスをリバースプロキシ経由で最終的に受け取るまでのステップは次のとおりです。

  1. まず、クライアントがウェブサーバーに向けてリクエストを送信します。しかし、クライアントは気づいていないものの、サーバーの代理を務めるリバースプロキシが途中でこのリクエストを受け取ります。
  2. リバースプロキシがこのリクエストを確認し、どのサーバーに転送するかを決定します。ロードバランシングアルゴリズムを使用して転送先を決定する場合もあります。
  3. リバースプロキシが適切なサーバーにリクエストを転送します。
  4. サーバーがこのリクエストを処理してレスポンスを生成し、リバースプロキシに返送します。
  5. リバースプロキシがレスポンスを受け取ります。ここで、キャッシュ、フィルタリング、レスポンスの修正などの追加処理を実行する場合もあります。
  6. リバースプロキシがクライアントにレスポンスを送信します。クライアントから見ると、本来のサーバーから届いたかのようにレスポンスが戻ってきます。

リバースプロキシの主なユースケース

  • ロードバランシング:クライアントから届くトラフィックをリバースプロキシで複数のバックエンドサーバーに分散させることで、アプリケーションのパフォーマンス、可用性、スケーラビリティが向上します。
  • SSL/TLS終端処理:SSL/TLSの暗号化と復号の処理をバックエンドのウェブサーバーに代わってリバースプロキシが実行できます。
  • 圧縮:やり取りするデータをリバースプロキシで圧縮できます。必要な帯域幅を抑制し、パフォーマンスを向上させることができます。
  • キャッシュ:アクセス頻度が高いデータをリバースプロキシでキャッシュできます。バックエンドサーバーの負荷が抑えられ、レスポンスタイムが短縮されます。
  • セキュリティ:リバースプロキシによってセキュリティのレイヤーが加わり、不正なトラフィックのフィルタリングとブロック、特定のリソースへのアクセス制限、認証と認可のポリシーの適用を行うことができます。

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

APIゲートウェイとリバースプロキシは機能が重なる部分もありますが、役割が異なります。APIゲートウェイは背後にあるAPIへの入口、リバースプロキシはウェブアプリケーションへの入口にあたります。

APIゲートウェイの機能はAPIマネジメント向けとなっており、次のような機能があります。

  • APIのバージョン管理と変換
  • 認証と認可(例:OAuth、JWT、その他のAPI認証手法)
  • 流量制限とスロットリング
  • キャッシュ
  • ロギングとAPI監視
  • リクエストまたはレスポンスの変換
  • サービスディスカバリ
  • サーキットブレーカとフォールトトレランス

一方リバースプロキシは、APIやウェブサーバーなど、あらゆる種類のウェブサービスに適用できる汎用的な機能を備えています。例えば次のような機能があります。

  • ロードバランシング
  • SSL終端処理
  • キャッシュ
  • 圧縮
  • URL書き換え
  • セキュリティ機能(例:不正なリクエストのフィルタリング、DDoS攻撃への対処)

セットアップや設定に関しては、APIゲートウェイは機能セットが多岐にわたる分、一般にはリバースプロキシよりも多くの作業が必要です。通常、APIゲートウェイを稼働させるには、背後にあるAPIへのルートの定義、認証のセットアップ、API関連のその他のポリシーの設定が必要になります。それに比べると、リバースプロキシはセットアップがはるかにシンプルです。

リバースプロキシにはないAPIゲートウェイのメリット

リバースプロキシよりもAPIゲートウェイの方が、特にAPIマネジメントに関して高度な機能を備えています。主な特長は次のとおりです。

  • 開発体験:背後にあるAPIの活用を強化するための機能を社内と外部の開発者に提供するという面は、一般にAPIゲートウェイの方がはるかに優れています。例えば、開発者ポータル、登録機能、モックレスポンスなどの機能があります。
  • APIに特化した高度な機能:APIゲートウェイは、APIのライフサイクル全体を管理するための高度な機能を備えています。例えば、次のような機能はリバースプロキシにはありません。
    • APIライフサイクルマネジメント(バージョン管理を含む)
    • 認証または認可(既存のIDPシステムとの統合を含む)
    • ティアに応じた流量制限やスロットリング
    • リクエストまたはレスポンスのシンプルな変換
  • APIマネジメントの一元化:リバースプロキシとAPIゲートウェイは、どちらもAPIへのアクセスを一元化する役割を果たすものの、一貫した管理と制御をすべてのAPIに適用するという面では、APIゲートウェイの方がはるかに高度な機能を備えています。APIゲートウェイは、ポリシーの適用、使用状況の監視、各種サービスの一貫性の維持が簡単です。

まとめ

APIゲートウェイ、APIプロキシ、リバースプロキシという選択肢のうちで、どれにするかを決めるには、根本的なユースケースに注目することがポイントになります。

複数のAPIを一貫した方法で管理することを主な目標として掲げ、ライフサイクル全体の管理や開発体験の強化を図りたいのであれば、APIゲートウェイが備えている一連の高度な機能が不可欠です。一方、ウェブトラフィック全般を処理する汎用的なソリューションを求めているのであれば、リバースプロキシの方が適切な場合もあります。

開発者のアジリティを確保し、コンプライアンスとセキュリティを維持しましょう。APIファーストの企業を目指すうえで、Kongがどのように力になるかを実際に体験して下さい。