web-dev-qa-db-ja.com

負荷分散はどのように機能しますか?

ロードバランサーがどのように機能するのか理解できません。たとえば、Rackspaceクラウドサーバーについて説明します。

  1. すべてのものを含む1つのインスタンスがあります
  2. そのインスタンスのクローンを作成しているので、実際には2つの同一のコピーがありますか?
  3. 次に、ロードバランサーから静的IPを取得します。これは、2つのインスタンスのいずれかに送信されます(実際には同じです)。

そうですか?これについてもっと理解するにはどうすればよいですか?

1
JREAM

設定によって異なります。ただし、基本的な負荷分散のセットアップには、単一のデータベースサーバーが含まれます。 Django Book、 Deploying Django についての章には、基本的な負荷分散構成を示す簡単な図があります。

Load balancing with Django

基本的に、Webページを生成するコンピューターはすべて、専用サーバーに格納されている同じデータベースを共有します。メディアファイル(CSSや画像など)は、同じサーバーまたは別の専用メディアサーバーに保存できますが、この役割はロードバランサー自体によって実行される場合があります。

ただし、非常に高いトラフィックまたは大量の静的コンテンツを目的とする高度なセットアップでは、いくつかの異なるメディアサーバーで静的ファイルを提供することをお勧めします。最後に、分散データベースのセットアップが必要な場合もありますが、これによりまったく新しいクラスの問題が発生します。これは実際には別のトピックです(たとえば、ロードバランサーを使用せずに分散データベースを使用できます)。

2
André Caron

負荷分散には複数の実装があり、それぞれに独自のアプローチがあり、専門分野に基づいて特定の利点が得られます。

  1. 通常、ノードを相互に関連付ける共有データまたは共通データがいくつかあります(データ、ユーザー情報など)。
  2. これは、アプリケーションのアーキテクチャに依存します。ステートフル(データの保存)かステートレス(データの受け渡し)かは、通常、ノード間で共有される共通のコードベースです(基本的にノード間で「クローン」されます)。
  3. 通常、IP割り当てはロードバランサーを介して管理されませんが、IP構成は通常、その構成の密接な部分です(ネットワーク化された各コンポーネント/デバイスには独自のIPアドレスが必要になるため)

実装の詳細を理解するには、実装自体を特定する必要があります。

1
user48838

負荷分散により、負荷が2つのインスタンスに分散されます。したがって、1つのインスタンスがすべての作業を処理しているわけではありません。

  1. Rackspaceを使用してロードバランサーをセットアップします。
  2. ロードバランサーから静的IPを受け取ります。
  3. WebサイトのDNSをロードバランサーの静的IPにポイントします。
  4. ロードバランサーは、トラフィックを2つのインスタンスに均等にリダイレクトします。
1
John Doe