1. 概要

今日、私たちはAPIが成功するデジタル製品の中心的存在であることを知っています。 したがって、適切なAPI管理が重要です。

このクイックチュートリアルでは、この方向に役立つ2つのオブジェクト、つまりリバースプロキシ、APIゲートウェイ、およびそれらの違いについて学習します。

2. 建築

以下で説明するように、それらが提供できる機能は2つの間で異なりますが、トポロジと、それらが占めるインフラストラクチャ内の位置は同じです。 このため、次のように表現できます。

3. リバースプロキシ

リバースプロキシを使用することが有用になる理由の1つは、クライアント側と1つ以上のバックエンドサーバー間のメディエーターとして使用することです。マイクロサービスアーキテクチャとプロジェクトが進展するにつれて、それらの数が増えるのを見ることができます。 ある時点で、APIサーフェスの不均一性によって与えられる複雑さが、このすべての複雑さをマスクする必要が生じる可能性があります。 これを行うために、リバースプロキシはURLを書き換えることができます。 クライアントは、誰がリバースプロキシを超えているかを知りません。 リクエストを実行できるバックエンドにリクエストを転送するのは、リバースプロキシの責任です。

リバースプロキシの一般的な使用法は次のとおりです。

  • 負荷分散:複数のバックエンドサーバーに着信要求を分散する機能を提供します。 このような負荷分散は、個々のシステムの過負荷を防ぎ、バックエンドの障害を補正します。 エラーが原因でバックエンドに到達できなくなった場合、その負荷分散モジュールは着信要求を残りのバックエンドに再分散します
  • 攻撃からの保護:ウイルス対策やパケットフィルターなどの制御システムをインストールする可能性を提供します。これらのシステムは、インターネットとプライベートネットワークの間に配置することで、バックエンドをさらに保護します。
  • キャッシング:定期的なリクエストの場合、自律的に、部分的に、または完全に応答できます。 多くの場合、コンテンツはプロキシキャッシュに保持されます。 このようにして、バックエンドから取得されるデータが少なくなり、クライアントがより短い時間で応答を受け取るようになります
  • SSL暗号化:すべての着信要求を復号化し、すべての発信応答を暗号化するように構成して、バックエンドの貴重なリソースを解放できます

この時点で、これらの機能のすべてが十分でない場合は、APIゲートウェイが必要になる可能性があります。 APIGatewayがさらに提供するものを詳しく見ていきましょう。

4. APIゲートウェイ

Gateway APIは、リバースプロキシのスーパーセットと考えることができます。 次に、それが提供しなければならない追加機能について説明します。

まず、API Gatewayは、アーキテクチャ内でバックエンドがどのようにパーティション化されているかをクライアントに隠します。 リクエストを転送するだけでなく、オーケストレーション/アグリゲーションを実行することもできます。 これにより、クライアントコードが簡素化され、APIリクエスト/ラウンドトリップの数が減ります。 さらに、クライアントは複数のバックエンドを呼び出すのではなく、APIゲートウェイとのみ通信します。

要求/応答の処理に関連するもう1つの機能は、プロトコル変換です。 つまり、API Gatewayは、プロトコルからプロトコルへの変換(XMLからJSON、gRPCからJSONなど)を実行して、クライアントとサーバー間の統合を容易にすることができます。

API Gatewayは、セキュリティ、信頼性、スケーラビリティ、可観測性、トレーサビリティなどの一般的な機能に対処するための優れたドライバーです。 方法を見てみましょう。

セキュリティから始めるために、それは提供します:

  • 認証と承認:誰が何を要求できるかをエッジに集中させます
  • IPホワイトリスト:特定のIPアドレスにのみAPIを使用する機能を付与できます

パフォーマンスに関連するものに移ります。

  • レート制限、スロットリング、クォータ:特定の時間単位で処理できるリクエスト/データサーバーの数に基づいて制限を設定できます。 さらに、商業的側面をさらに見ると、APIコンシューマーが購入したプランに基づいて、使用しているトラフィックを制御する可能性があります。
  • 再試行ポリシーとサーキットブレーカー:これらは、バックエンドが一時的に利用できない状態を管理することで、バックエンドの復元力と信頼性を高めるために使用されます(たとえば、クライアントに代わってリクエストを再実行したり、サーバーがリクエストで溢れるのを防ぎます)。

可観測性とトレーサビリティで結論を出すには:

  • ロギング、トレース、相関:特定のリクエストごとにすべてのログを収集し、どのバックエンドが関与しているか、および関連するメトリックを把握します

5. 違い

要約すると、両方を個別に見てきたので、リバースプロキシとAPIゲートウェイの主な違いを要約しましょう。

6. 結論

この記事では、APIゲートウェイとリバースプロキシの責任を明確にしたので、要求される単純さの必要性と、解決したい要件と問題に基づいて適切に選択できます。