ネットワークのOpen Systems Interconnection(OSI)参照モデルでは、さまざまなレイヤーで負荷分散を実行できます。ここでは、モデル内の異なる2つのレイヤーにおける2つの負荷分散オプションについて概要を説明します。

レイヤー4とレイヤー7の負荷分散の違い

レイヤー4ロードバランシングは、中間層であるトランスポート層で動作します。この層は、メッセージの内容に関係なく、メッセージの配信を処理します。伝送制御プロトコル(TCP)は、インターネット上のハイパーテキスト転送プロトコル(HTTP)トラフィックに使用されるレイヤー4プロトコルです。レイヤー4ロードバランサーは、パケットの内容を検査せずに、アップストリームサーバーとの間でネットワークパケットを転送するだけです。TCPストリームの最初の数パケットを検査することで、限定的なルーティング判断を行うことができます。

レイヤー7ロードバランシングは、上位のアプリケーション層で動作し、各メッセージの実際の内容を処理します。HTTPは、インターネット上のWebサイトトラフィックで主に使用されるレイヤー7プロトコルです。レイヤー7ロードバランサーは、レイヤー4ロードバランサーよりもはるかに高度な方法でネットワークトラフィックをルーティングします。これは、特にHTTPなどのTCPベースのトラフィックに適しています。レイヤー7ロードバランサーはネットワークトラフィックを終端し、その中のメッセージを読み取ります。メッセージの内容(URLやCookieなど)に基づいて、負荷分散先を決定できます。その後、選択したアップストリームサーバーへの新しいTCP接続を確立するか、HTTPキープアライブを使用して既存の接続を再利用し、サーバーにリクエストを書き込みます。

レイヤー7ロードバランシングのメリット

レイヤー7ロードバランシングは、パケットベースのレイヤー4ロードバランシングよりもCPU負荷が高くなりますが、最新のサーバーでパフォーマンス低下を引き起こすことはほとんどありません。レイヤー7ロードバランシングにより、ロードバランサーはより高度な負荷分散を判断し、コンテンツの最適化や変更(圧縮や暗号化など)を適用できます。また、バッファリングを使用して低速な接続の処理をアップストリームサーバーからオフロードするため、パフォーマンスが向上します。

Layer 7ロードバランシングを実行するデバイスは、多くの場合、リバースプロキシサーバーと呼ばれます。

レイヤー7ロードバランシングの例

簡単な例を見てみましょう。ユーザーがアクセス数の多いWebサイトを訪問します。セッション中に、画像や動画などの静的コンテンツ、ニュースフィードなどの動的コンテンツ、さらには注文状況などのトランザクション情報をリクエストする場合があります。レイヤー7ロードバランシングでは、リクエストされているコンテンツの種類など、リクエスト自体に含まれる情報に基づいて、ロードバランサーがリクエストをルーティングできます。そのため、画像や動画のリクエストを、それらを保存し、マルチメディアコンテンツの配信に高度に最適化されたサーバーへルーティングできます。割引価格などのトランザクション情報に対するリクエストは、価格設定を管理するアプリケーションサーバーへルーティングできます。レイヤー7ロードバランシングにより、ネットワークおよびアプリケーションアーキテクトは、高度に調整、最適化されたサーバーインフラストラクチャ、または信頼性を確保しながら需要に応じて効率的に拡張できるアプリケーションデリバリーネットワークを構築できます。

NGINXがどのように役立つか

NGINX PlusとNGINXは、Dropbox、Netflix、Zyngaなど、トラフィック量の多いWebサイトで利用されている最高クラスのロードバランシングソリューションです。世界中の3億5,000万のWebサイトが、コンテンツを迅速かつ確実、安全に配信するために、NGINX PlusとNGINX Open Sourceを利用しています。

ソフトウェアベースのロードバランサーであるNGINX Plusは、同等の機能を備えたハードウェアベースのソリューションよりも大幅に低コストです。NGINX Plusの包括的な負荷分散機能により、高度に最適化されたアプリケーションデリバリーネットワークを構築できます。

サーバーファームの前段にロードバランサーとしてNGINX Plusを導入すると、Webサイト全体の効率、パフォーマンス、信頼性、拡張性が向上します。NGINX Plusは、顧客満足度とIT投資収益率の両方を最大限に高めるのに役立ちます。