ロードバランサの解説(基本情報技術者シラバス用語)

ロードバランサの解説(基本情報技術者シラバス用語)
目次

ロードバランサとは


ロードバランサ(Load Balancer:負荷分散装置)とは、ネットワーク上の複数のサーバーに対して、外部からのアクセス(通信要求)を均等に振り分けるための装置やソフトウェアのことです。Webサイトやオンラインゲームなどへのアクセスが特定の1台のサーバーに集中すると、そのサーバーの処理が追いつかなくなり、表示が遅くなったりシステムが停止したりします。ロードバランサをサーバーの手前に設置することで、アクセスを各サーバーの空き状況や性能に応じて分散させ、システム全体の安定稼働とパフォーマンスを保つことができます。

具体例

人気のテーマパークの入場ゲートに例えられます。ゲートの前に誘導スタッフ(ロードバランサ)が立っており、並んでいるお客さん(アクセス)を空いているゲート(サーバー)へ順番に「あなたは1番ゲートへ、あなたは2番ゲートへ」と案内します。これにより、特定のゲートだけが大混雑するのを防ぎます。プログラムによる振り分けルールのイメージ(ラウンドロビン方式)は以下のようになります。

// アクセスを順番に振り分けるプログラムの例
String[] servers = {"ServerA", "ServerB", "ServerC"};
int index = 0;
void handleRequest(Request req) {
    String target = servers[index];
    sendTo(target, req); // 順番にサーバーへ振り分け
    index = (index + 1) % servers.length;
}

もう少し詳しく

ロードバランサ(負荷分散装置)は、外部からの通信要求(トラフィック)を受け取り、背後にある複数のサーバーへ適切に振り分ける役割を担います。これにより、特定のサーバーに対する過負荷を防ぎ、システム全体のパフォーマンスと安定性を高めることができます。

トラフィックをどのように振り分けるか(負荷分散アルゴリズム)には、いくつかの種類があります。

  • ラウンドロビン方式:各サーバーに対して、順番に均等にリクエストを割り振る最も基本的な方式です。サーバーの性能が全て同じ場合に適しています。
  • 最小接続(リーストコネクション)方式:現在処理中の通信(セッション)数が最も少ないサーバーに対して、新たなリクエストを割り振る方式です。処理に時間がかかる要求が混ざっている環境で有効です。
  • ハッシュ方式:送信元のIPアドレスなどを基に計算を行い、常に同じサーバーに割り振るようにする方式です。

また、ロードバランサは単に振り分けるだけでなく「ヘルスチェック(死活監視)」という重要な機能を持っています。これは定期的に背後のサーバーへ通信を送り、正常に稼働しているかを確認する仕組みです。もしサーバーが故障して応答がない場合、ロードバランサはそのサーバーを振り分け先から自動的に除外し、正常なサーバーのみで運用を継続します。

さらに高度なロードバランサ(L7ロードバランサなど)では、暗号化されたHTTPS通信の復号処理(SSLターミネーション)を肩代わりしてサーバーの負荷を軽減したり、Cookieの情報を見て「ログイン中のユーザーは必ず前回と同じサーバーに振り分ける(セッション維持機能:パーシステンス)」といった細やかな制御も行います。

試験でのポイント

試験では、ロードバランサが「システムの可用性」や「応答性能の向上」にどう寄与するかが問われます。特に「ラウンドロビン」というアルゴリズムの名前はよく出題されるため、順番に均等に割り振る方式であることを覚えておきましょう。

また、ロードバランサ自体が故障するとシステム全体が停止してしまう「単一障害点(SPOF)」になる可能性があるため、ロードバランサ自身も2台用意して冗長化(アクティブ・スタンバイ構成など)しておくのが一般的である、というシステム構成のセオリーも問われることがあります。

関連する用語

順番に処理を割り当てる ラウンドロビン や、サーバーの台数を増やして処理能力を向上させる スケールアウト、複数のサーバーを連携させる クラスタリング といった用語が深く関連します。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ