最適な負荷分散は非常に高価で複雑になる可能性があります。基本的な負荷分散では、各サーバーがいつでもほぼ同じ数のヒットを処理していることを確認するだけです。
最も単純な負荷分散方法は、DNSに複数のAレコードを提供することです。デフォルトでは、IPアドレスはラウンドロビン方式で構成されます。これにより、ユーザーはサーバー間で比較的均等に分散されます。これは、ステートレスサイトに適しています。ステートフルサイトがある場合は、もう少し複雑な方法が必要です。
ステートフル要件を処理するには、リダイレクトを使用できます。各Webサーバーにwww1、www2、www3などの代替アドレスを与えます。最初のwww接続をホストの代替アドレスにリダイレクトします。この方法でブックマークの問題が発生する可能性がありますが、それらはサーバー全体に均等に分散する必要があります。
または、別のパスを使用して、どのサーバーがステートフルセッションを処理しているかを示すと、ホストを元のサーバーに切り替えたセッションをプロキシできます。これは、障害が発生したサーバーのセッションが、障害が発生したサーバーから引き継いだサーバーに到着したときに問題になる可能性があります。ただし、クラスタリングソフトウェアがなければ、状態は失われます。ブラウザーのキャッシュにより、サーバーを変更する多くのセッションが発生しない場合があります。
障害が発生したサーバーのIPアドレスを引き継ぐようにサーバーを構成することにより、フェールオーバーを処理できます。これにより、サーバーに障害が発生した場合のダウンタイムが最小限に抑えられます。クラスタリングソフトウェアがなければ、サーバーに障害が発生するとステートフルセッションが失われます。
フェイルオーバーがない場合、ユーザーはブラウザーが次のIPアドレスにフェイルオーバーするまで遅延が発生します。
ステートフルセッションではなく、Restfulサービスを使用すると、フロントエンドでのクラスタリングの問題を解決できます。ストレージ側のクラスタリングの問題は引き続き適用されます。
サーバーの前にロードバランサーがある場合でも、サーバーの前にラウンドロビンDNSがある可能性があります。これにより、すべてのロードバランサーが確実に利用されます。彼らはあなたの設計に別の層を追加し、さらに複雑さと別の障害点を追加します。ただし、いくつかのセキュリティ機能を提供できます。
最適なソリューションは、関連する要件によって異なります。
画像、CSSファイル、その他の静的コンテンツなどのコンテンツを提供する画像サーバーを実装すると、アプリケーションサーバーの負荷を軽減できます。