リバースプロキシは、負荷分散サービスを提供するほか、ネットワーク上の戦略的な挿入ポイントで、Webアプリケーションファイアウォール、アプリケーションデリバリーファイアウォール、ディープコンテンツインスペクションを通じて、Webアプリケーションセキュリティを適用する目的でも、ますます利用されています。

リバースプロキシとは

ネットワークやWebトラフィックにおいて、プロキシとは、他のデバイスに代わって動作するデバイスまたはサーバーです。2つのエンティティの間に配置され、サービスを提供します。プロキシは、クライアントとサーバーの間に配置され、リクエストと、場合によってはレスポンスを管理するハードウェアまたはソフトウェアのソリューションです。

通常、リバースプロキシサーバーはWebサーバーの前段に配置され、クライアント(Webブラウザなど)からのリクエストをWebサーバーに転送します。リクエストされたリソースは、あたかもプロキシサーバー自体から送信されたかのようにクライアントへ返されます。これにより、抽象化と制御のレイヤーが追加され、クライアントとサーバー間のネットワークトラフィックが円滑に流れるようになります。また、リバースプロキシでは、ユーザーデバイス、場所、ネットワーク状況、アプリケーションの健全性、さらには時間帯など、さまざまなパラメーターに基づいてリクエストの転送先を決定できます。

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

リバースプロキシサーバーとロードバランサーは、どちらもクライアントサーバー型コンピューティングアーキテクチャのコンポーネントです。いずれもクライアントとサーバー間の通信を仲介し、効率を向上させる機能を担います。専用に設計されたデバイスとして実装することもできますが、最新のWebアーキテクチャでは、汎用ハードウェア上で動作するソフトウェアアプリケーションとして実装されるケースが増えています。両者は似た機能を果たすように見えますが、Webサイトで一般的に導入される状況とその理由を見ていきましょう。

A ロードバランサーは、受信したクライアントリクエストを複数のサーバーに分散し、十分な速度と最適な動作を確保します。ロードバランサーは通常、リクエスト量が多く、1台のサーバーでは効率的に処理できないため、サイトに複数のサーバーが必要な場合に導入されます。複数のサーバーを導入すると単一障害点も解消され、Webサイトの信頼性が向上します。一般に、すべてのサーバーが同じコンテンツをホストします。ロードバランサーは、各サーバーの処理能力を最大限に活用し、特定のサーバーへの過負荷を防ぎ、クライアントへの応答を可能な限り高速化できるように、ワークロードを分散します。

A リバースプロキシは、クライアントからのリクエストを受け付け、そのリクエストを処理できるサーバーに転送し、サーバーからのレスポンスをクライアントに返します。ロードバランサーの導入が有効なのは複数のサーバーがある場合に限られますが、リバースプロキシは、Webサーバーやアプリケーションサーバーが1台だけの場合でも導入が有効なことがよくあります。リバースプロキシは、Webサイトの「表玄関」と考えることができます。Webサイトの公開アドレスにはリバースプロキシのアドレスが使用されます。リバースプロキシはサイトのネットワーク境界に配置され、Webサイトでホストされているコンテンツに対するWebブラウザやモバイルアプリからのリクエストを受け付けます。リバースプロキシは、抽象化と制御のレベルをさらに高め、クライアントとサーバー間のネットワークトラフィックを円滑に流します。リバースプロキシには、次の機能があります。

  • セキュリティの強化 バックエンドサーバーに関する情報は内部ネットワークの外部からは見えないため、悪意のあるクライアントがサーバーに直接アクセスして脆弱性を悪用することはできません。多くのリバースプロキシサーバーには、バックエンドサーバーを分散型サービス拒否(DDoS)攻撃から保護するのに役立つ機能が搭載されています。たとえば、特定のクライアントIPアドレスからのトラフィックを拒否(拒否リストに登録)したり、各クライアントから受け付ける接続数を制限したりできます。
  • スケーラビリティと柔軟性の向上。 クライアントから見えるのはリバースプロキシのIPアドレスだけなので、バックエンドインフラストラクチャの構成を自由に変更できます。これは、トラフィック量の変動に合わせてサーバー数を増減できる負荷分散環境で特に有用です。
  • Webアクセラレーション リバースプロキシは、SSLアクセラレーション、インテリジェント圧縮、キャッシュなどの技術を通じて、レスポンスの生成からクライアントへの返送までにかかる時間を短縮し、パフォーマンスを向上させることができます。また、Webアプリケーションセキュリティを適用することで、複数のアプリケーションに対する統合セキュリティサービスも実現します。

リバースプロキシが重要な理由

リバースプロキシは、負荷分散サービスによってより快適なWebエクスペリエンスを提供するために使用されます。また近年では、Webアプリケーションファイアウォール、アプリケーションデリバリーファイアウォール、ディープコンテンツインスペクションを通じて、ネットワーク上の戦略的な挿入ポイントでWebアプリケーションセキュリティを適用するためにも使用されるようになっています。

クラウド環境と組み合わせることで、リバースプロキシは、制御やセキュリティを損なうことなくクラウドの経済的メリットを得られる、クラウドバースティングやアプリケーション分割アーキテクチャを実現できます。

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

リバースプロキシは、単純な転送サービスとして機能する場合もあれば、クライアントとサーバー間の通信に能動的に関与する場合もあります。プロキシが2つのネットワークスタックを実装し、クライアントとサーバーを別々のエンティティとして扱う場合、フルプロキシと呼ばれます。

フルプロキシは、TCPクライアント接続と、それとは別のTCPサーバー接続を確立し、両者の間にわずかな隔たりを設けます。一方ではクライアントがプロキシに接続し、もう一方ではプロキシがサーバーへの独立した別の接続を確立します。どちらの接続も双方向です。各接続は独立しているため、クライアント側とサーバー側の接続が混在することはありません。

F5はリバースプロキシ機能をどのように処理するのか

リバースプロキシの機能は、環境の複雑さや組織のニーズに応じて、デバイス、ソフトウェア、またはサービスで実現できます。

クラウドネイティブ環境

クラウドネイティブ環境に最適なNGINX Plusは、ソフトウェアベースのリバースプロキシであり、ハードウェアデバイスと同様に、負荷分散、レイヤー7ルーティング、Webパフォーマンスの最適化を行います。NGINX Plusは、Webサイトのパフォーマンス、信頼性、セキュリティ、拡張性の向上にも役立ちます。同等の機能を備えたハードウェアベースのソリューションよりも大幅に低コストです。NGINX Plusの包括的な負荷分散機能とリバースプロキシ機能により、高度に最適化されたアプリケーションデリバリーネットワークを構築できます。NGINX Plusは、フルプロキシよりも低コストで、パブリッククラウドとプライベートデータセンターの両方に導入できます。

ハイブリッド環境

より複雑なハイブリッド環境向けに、F5 BIG-IP system は、リクエストとレスポンスを傍受、検査し、それらに対して処理を実行できるフルリバースプロキシサーバーとして導入可能なフルプロキシです。ロードバランシングやWebパフォーマンス最適化といった基本機能に加え、トラフィック管理の高度なサービスも提供します。たとえば、アプリケーションレイヤーセキュリティ、Webアクセラレーション、ページルーティング、セキュアリモートアクセスなどです。