リバースプロキシとロードバランサーの違いとは?

リバースプロキシ:クライアントからのリクエストを受信して適切なバックエンドサーバーに転送し、そのサーバーからのレスポンスをクライアントに返します。ロードバランサー:クライアントからのリクエストを複数のサーバーに分散し、選択されたサーバーからのレスポンスが適切なクライアントに返されるようにします。定義は似ているように見えますが、機能は異なるため、混同されることがよくあります。

リバースプロキシサーバーとロードバランサー

リバースプロキシサーバーとロードバランサーは、クライアント/サーバー型コンピューティングアーキテクチャに不可欠なコンポーネントです。どちらもクライアントとサーバーの仲介役として機能し、通信効率を高めます。専用ハードウェアデバイスとして実装することもできますが、最新のWebアーキテクチャでは、汎用ハードウェア上で動作するソフトウェアアプリケーションの利用が増えています。

それぞれの基本的な定義は次のとおりです。

  • リバースプロキシ:クライアントからのリクエストを受信して適切なバックエンドサーバーに転送し、そのサーバーからのレスポンスをクライアントに返します。
  • ロードバランサー:クライアントからのリクエストを複数のサーバーに分散し、選択されたサーバーからのレスポンスが適切なクライアントに返されるようにします。

定義は似ているように見えますが、機能は異なるため、混同されることが少なくありません。違いを明確にするため、Webサービスでそれぞれが導入される場面と理由を見ていきます。

負荷分散

通常、単一のサーバーでは大量のリクエストを効率的に処理できず、複数のサーバーで負荷を分担する必要がある場合に、ロードバランサーを導入します。ロードバランサーは、複数のサーバーにリクエストを分散することで単一障害点を排除し、Webサイトの信頼性を向上させます。このような環境では、ほとんどのサーバーが同一のコンテンツをホストします。

ロードバランサーの役割は、サーバーリソースを最大限に活用し、特定のサーバーに負荷が集中しないようワークロードを均等に分散して、クライアントへの応答を高速化することです。サーバーがオフラインになると、ロードバランサーがそれを検知し、残りのサーバーにリクエストを再ルーティングします。

高度なヘルスチェックでは、傍受したエラーレスポンスだけに依存するのではなく、特定のリクエストを送信してレスポンスを分析することで、ロードバランサーがサーバーの稼働状態をより効果的に評価できます。
一部のロードバランサーはセッションパーシステンスにも対応しており、特定のクライアントからのすべてのリクエストを同じサーバーに転送できます。これは、ショッピングカートなどの機能で一貫したセッション状態を維持する必要があるeコマースプラットフォームのような、ステートフルアプリケーションで特に有用です。

リバースプロキシ

ロードバランサーは通常、複数のサーバーで構成される環境に導入されますが、リバースプロキシはWebサーバーやアプリケーションサーバーが1台だけの場合でも役立つことがよくあります。Webサイトの「表玄関」としてネットワークエッジに配置され、ブラウザーやモバイルアプリからホストされているコンテンツへのリクエストを受信します。

主なメリットは次のとおりです。

  • セキュリティの強化:リバースプロキシは、バックエンドサーバーの情報が外部ネットワークから見えないように保護し、悪意のある攻撃者によるサーバーへの直接アクセスを防ぎます。さらに、ほとんどのリバースプロキシは、特定のIPアドレスからのトラフィックをブロックし、接続試行を制限して、DDoS攻撃から保護できます。
  • スケーラビリティと柔軟性の向上:クライアントから見えるのはリバースプロキシのIPアドレスのみであるため、バックエンドインフラストラクチャを柔軟に変更できます。この構成は負荷分散環境で特に有用であり、トラフィックの変動に応じてシームレスにスケーリングできます。

リバースプロキシは、次のような手法を通じてクライアントリクエストへの応答生成にかかる時間を短縮し、Webアクセラレーションも大幅に強化します。

  • 圧縮:サーバーからのレスポンスを送信前に圧縮(gzipなどを使用)することで、帯域幅の使用量を削減し、転送を高速化します。
  • SSL/TLS終端:トラフィックを暗号化することで、インターネットなどのパブリックネットワークを介して送信されるデータを保護します。ただし、暗号化と復号には多大なコンピューティングリソースが必要です。リバースプロキシがこれらの処理を担うことで、バックエンドサーバーはコンテンツ配信に専念できます。
  • キャッシュ:頻繁にリクエストされるコンテンツを保存することで、クライアントへの応答時間を短縮し、バックエンドサーバーの負荷を軽減します。

NGINX Plusはどのように役立つのか

NGINX PlusとNGINXは、Dropbox、Netflix、Zyngaなど、アクセス数の多いWebサイトから信頼されている世界トップクラスのロードバランシングソリューションです。世界中の4億5,000万を超えるWebサイトが、高速で信頼性とセキュリティに優れたコンテンツ配信を実現するために、NGINX PlusとNGINX Open Sourceを利用しています。

NGINX Plusは、幅広いロードバランシング機能とリバースプロキシ機能を提供し、Webサイトのパフォーマンス、信頼性、セキュリティ、スケーラビリティの向上に貢献します。ソフトウェアベースのソリューションであるため、ハードウェアベースのソリューションよりも大幅に低いコストでこれらの機能を利用できます。NGINX Plusを使用すれば、高度に最適化されたアプリケーションデリバリーネットワークを構築できます。