1. ホーム
  2. nginx

[解決済み] APIゲートウェイとリバースプロキシの比較

2022-04-29 02:23:48

質問

マイクロサービスアーキテクチャに対応するため、リバースプロキシ(nginxやapache httpdなど)と併用して、クロスカッティングの実装を行うことが多い。 APIゲートウェイパターンが使用されている . リバースプロキシがAPIゲートウェイの仕事をすることもある。

この2つのアプローチの違いが明確になると良いですね。 APIゲートウェイの潜在的な利点は、複数のマイクロサービスを呼び出してその結果を集約することにあるようだ。それ以外の 責任 APIゲートウェイはReverse Proxyで実装することができる。例えば、以下のようなものです。

  • 認証(nginxのLUAスクリプトを使用して行うことができます)。
  • トランスポートセキュリティ。それ自体がリバースプロキシタスク。
  • ロードバランシング
  • ...

これを踏まえて、いくつかの疑問があるわけです。

  1. APIゲートウェイとリバースプロキシーを同時に使うことは意味があるのでしょうか(例:リクエスト -> APIゲートウェイ -> リバースプロキシ(nginx) -> 具象マイクロサービス)。どのような場合ですか?
  2. その他、API Gatewayで実装できてReverse Proxyで実装できない、またはその逆の違いはありますか?

どのように解決するのですか?

相互に排他的でないことを理解すれば、考えるのは簡単です。APIゲートウェイは特定のタイプのリバースプロキシ実装だと思えばいい。

ご質問の件ですが、APIゲートウェイはアプリケーション層として扱われ、負荷分散とヘルスチェックのためにリバースプロキシーの後ろに位置するというように、両者を組み合わせて使用することは珍しくありません。例としては、Web Application Firewall/API Gateway がリバースプロキシ層に挟まれた WAF サンドイッチアーキテクチャのようなものだ。

違いについては、非常によく似ています。単なる命名法です。基本的なリバースプロキシの設定に、認証、レート制限、動的な設定更新、サービス発見などの要素を追加していくと、人々はそれをAPIゲートウェイと呼ぶことが多くなります。