負荷分散
負荷分散とは、ワークロードを複数のコンピューターに分散することです。通常は、複数のWebサーバーでネットワークトラフィックを均等に分散するために行われますが、データベースクエリやデータマイニングなど、その他の計算処理を分割する場合もあります。これにより、1台のサーバーに負荷が集中し、クラスター内の他のサーバーがアイドル状態になるのを防ぎます。ボトルネックを取り除くことで、適切な負荷分散はWebサイトやWebアプリケーションをホストするサーバーのパフォーマンス向上に役立ちます。
1台のWebサーバーが、通常の5倍や10倍の秒間リクエストを突然受け取ると、その要求に対応しきれなくなる可能性があります。通常よりも遅くコンテンツを提供したり、負荷によってクラッシュしたりすることさえあります。これらのリクエストを複数のサーバーに分散すると、WebサイトやWebアプリケーションを利用可能で応答性の高い状態に保つことができます。負荷分散は複数の場所にまたがっても機能するため、1台のサーバーのインターネット接続が飽和状態になった場合は、別のデータセンターにリクエストを送って帯域幅をより効果的に利用できます。
負荷分散がローカルネットワーク上で行われる場合でも、大規模なデータセンターで行われる場合でも、受信トラフィックをサーバー間で分配するための専用ハードウェアまたはソフトウェアが必要です。これらのハードウェア機器やソフトウェアプログラムは、ロードバランサーと呼ばれます。ロードバランサーは受信トラフィックを受け取ると、負荷分散アルゴリズムを使ってリクエストを分配します。静的アルゴリズムは、ラウンドロビン方式のようなあらかじめ決められたパターンや、ランダムな順序でタスクを分配します。一方、動的アルゴリズムは各サーバーの現在の負荷を考慮し、最も混雑していないサーバーにタスクを振り分けます。分散型CDN全体で動的に負荷を分散する場合は、リクエストをクライアントに最も近いサーバーへ送ることで、地理的な位置も考慮することがあります。これにより、データパケットが移動する距離が短くなり、遅延が減少します。
知識をテストする