ロードバランサーとは、ユーザーからのアクセスを複数のサーバーに振り分けて、1台に負荷が集中しないようにする装置(またはサービス)のことです。結論から言うと、ロードバランサーはサーバーの負荷分散を担う交通整理役で、1台が止まってもサービスを続けるための仕組みでもあります。求人票やインフラの構成図で「ロードバランサー」という箱を見かけても、未経験のうちは何をしているのか実感が湧きにくいものです。この記事では、ロード バランサ(ロードバランサ)の仕組み、サーバー負荷分散の方法、構築の流れ、ネットワークロードバランサーとの関係までを未経験向けに整理します。

ロードバランサー(ロード バランサ)とは何か
ロードバランサーとは、ユーザーからのアクセスを受け取り、あらかじめ用意した複数のサーバーのどれかに振り分ける仕組みです。「ロードバランサ」「ロード バランサ」「LB」「負荷分散装置」はいずれも同じものを指す呼び方で、日本語では負荷分散装置とも呼ばれます。ユーザー側からはロードバランサーの先に何台のサーバーがあるかは見えず、1つの窓口にアクセスしているように見えます。窓口の奥で複数の担当者が手分けして対応しているイメージに近く、利用者はどの担当者が処理しているかを意識する必要がありません。
サーバーを1台だけで運用していると、そのサーバーが壊れた瞬間にサービス全体が止まってしまいます。ロードバランサーの先に複数台を並べておけば、1台に障害が起きても残りのサーバーで処理を続けられるため、負荷分散だけでなく「1台が落ちてもサービスを止めない」ための仕組みでもあるという点が理解のポイントになります。
なぜサーバーの負荷分散が必要なのか
アクセスが増えてきたサービスを1台のサーバーだけで支え続けると、CPUやメモリの処理が追いつかなくなり、応答が遅くなったり、最終的にはエラーを返すようになります。サーバーを増強して性能を上げる方法もありますが、性能には上限があり、増強のたびにサービスを止める必要が出てくることも珍しくありません。
そこで、性能を上げるのではなく台数を増やして分担する、という発想が出てきます。同じ処理ができるサーバーを横に並べ、ロードバランサーがアクセスを均等に割り振ることで、1台あたりの負荷を抑えながら全体の処理能力を積み増していけます。台数を増やすだけで対応できる分、急なアクセス増加にも比較的柔軟に対応しやすいという利点があります。ネットワーク全体の仕組みを理解しておくとこの発想もつかみやすくなるため、ネットワークの勉強は何から?で基礎を確認しておくと理解が早まります。
サーバー負荷分散の方法:どうやって振り分けているのか
ロードバランサーが「どのサーバーにアクセスを送るか」を決める方式にはいくつか種類があります。代表的な考え方を表にまとめます。
| 振り分け方式 | 考え方 | 向いている場面の目安 |
|---|---|---|
| ラウンドロビン | 順番に1台ずつ均等に割り振る | サーバーの性能がほぼ同じ場合 |
| 最小コネクション | 今処理中の接続数が少ないサーバーを優先する | サーバーごとに処理時間のばらつきが出やすい場合 |
| 重み付け | サーバーごとに割り振る比率をあらかじめ決めておく | サーバーの性能に差がある場合 |
どの方式を選ぶかは、サーバー構成やアプリの特性によって変わります。加えて、ロードバランサーは定期的に各サーバーへ疑似的なアクセス(ヘルスチェック)を送り、正常に応答しているかを確認しています。応答が無いサーバーは振り分け先から自動的に外されるため、障害が起きたサーバーへ利用者のアクセスが送られ続けることを防げる仕組みにもなっています。
L4とL7、2つの見る場所の違い
ロードバランサーには、通信のどの情報を見て判断するかによってL4とL7という区分があります。L4はIPアドレスやポート番号といった通信の宛先情報だけを見て振り分ける方式で、処理が軽く高速に動く点が特徴です。一方のL7は、URLやCookieの中身といったアプリケーションの内容まで見て振り分けを判断でき、「画像へのアクセスだけ別のサーバー群に送る」といった細かい制御が可能になります。
このL4・L7という呼び方は、通信を層で捉える考え方に基づいたもので、スイッチやルーターの違いを理解しているとイメージがつかみやすくなります。まだ整理できていない場合は、スイッチとルーターの違いで層ごとの役割を確認しておくと、ロードバランサーの立ち位置も理解しやすくなります。
ネットワークロードバランサー(NLB)とは何か
「ネットワーク ロードバランサとは」と検索する人の多くは、AWSのNetwork Load Balancer(NLB)か、L4で動くロードバランサーの一般的な意味を知りたいのだと思います。ネットワークロードバランサーとは、上で説明したL4(IPアドレスとポート番号を見る層)で振り分けを行うロードバランサーのことです。アプリの中身は見ずに通信を素早く転送するので、処理が軽く、TCPやUDPをそのまま流したい場面に向いています。
AWSのELBには、L7で動くALB(Application Load Balancer)と、L4で動くNLBなどの種類があります。目安として、URLやホスト名で振り分け先を変えたいWebアプリならALB、アプリの内容を問わず高速に転送したい通信ならNLB、という整理から入ると迷いにくくなります。AWS全体の位置づけはクラウド(AWS)とは?も合わせて読んでおくとつながりが見えてきます。
ロードバランサーの構築の流れ
「ロードバランサー 構築」で調べる人向けに、全体の流れを大まかに示します。クラウドのマネージド型を使う場合も、自前でNginxやHAProxyのようなソフトウェアを立てる場合も、考える順番はほぼ同じです。
- 振り分け先を用意する: 同じ内容で動くサーバーを2台以上、同じネットワーク内に準備する
- 振り分け方式を決める: ラウンドロビンなどの方式と、L4・L7のどちらで動かすかを選ぶ
- ヘルスチェックを設定する: どのパス・ポートで生死を確認するか、何回失敗したら切り離すかを決める
- 待ち受け(リスナー)と振り分け先を登録する: 受け付けるポートと、転送先のサーバー群を紐付ける
- 動作確認する: 何度かアクセスして振り分けを確かめ、1台止めても通信が続くことを試す
学習では、いきなり本番相当を作るより、ローカルの仮想環境やクラウドの無料利用枠で簡単なWebサーバーを2台立てて試すのが現実的です。Nginxでの転送の考え方はリバースプロキシとは?が参考になります。
負荷分散の事例と、回線の負荷分散との違い
サーバーの負荷分散の典型例は、ECサイトやニュースサイトのようにアクセスが時間帯やキャンペーンで大きく変動するサービスです。Webサーバーの前にロードバランサーを置き、アクセスが増える時間帯だけサーバーの台数を増やす、といった運用がよく行われます。台数の増減を自動で行う仕組みと組み合わせる構成も一般的です。
なお「回線 負荷分散」は、サーバーではなく複数のインターネット回線に通信を分ける話で、同じ「負荷分散」でも対象が違います。回線の負荷分散は、2本の回線に通信を振り分けて帯域を有効に使ったり、片方の回線が切れても通信を保ったりする目的で使われます。この記事で扱うロードバランサーは、あくまでサーバー側の分散です。
現場でロードバランサーに関わる場面
未経験から現場に入ってすぐにロードバランサーの設計を任されることは少ないですが、関わる場面自体は早い段階からあります。代表的なものは次の3つです。
- ヘルスチェックの確認: 特定のサーバーだけアクセスが来ていないという問い合わせに対し、ヘルスチェックが正常かを確認する場面
- サーバー追加時の設定変更: アクセス増加に備えてサーバーを1台追加する際に、振り分け対象へ加える作業に立ち会う場面
- 障害切り分けの一次対応: 一部の利用者だけつながりにくいという報告が来たとき、特定のサーバーに偏った問題かを切り分ける場面
現役でインフラの現場にいる立場から言うと、「一部のユーザーだけ調子が悪い」という報告があったときは、まずロードバランサーの振り分け先のうち1台に問題が偏っていないかを疑う癖をつけておくと、原因の切り分けが早くなります。クラウド環境ではAWSのELBのようなマネージド型のロードバランサーを使うことが多く、自分でソフトウェアを構築する場面は限られますが、仕組みを理解していないと設定画面を見ても判断がつきません。
InfraDojoで学ぶ
InfraDojoなら、ブラウザ上の演習環境でネットワークの基礎やサーバーの仕組みを手を動かしながら学べるため、ロードバランサーの前提になるIPアドレスやポート、サーバーとクライアントの関係を順番に固めていけます。ネットワークをどこから学べばいいか迷う場合は、ロードマップで全体の流れを確認しておくと、ロードバランサーを学ぶタイミングも判断しやすくなります。
よくある質問
Q. ロードバランサーは未経験のうちから学んでおくべきですか?
必須ではありませんが、IPアドレスやポート番号、サーバーとクライアントの関係といったネットワークの基礎を理解したあとであれば無理なく学べる範囲です。基礎を飛ばして名前だけ覚えようとすると、なぜ振り分けが必要なのかが分からず暗記になりやすいため、順番を意識しておくとよいでしょう。
Q. ロードバランサーが1台壊れたらどうなりますか?
ロードバランサー自体が1台しかない構成だと、そこが単一障害点になってしまいます。そのため実際の現場では、ロードバランサー自体も複数台で冗長化しておくのが一般的な考え方です。冗長化の範囲は構成によって異なるため、任される現場での実際の構成を確認しておくと理解が深まります。
Q. ロードバランサーとリバースプロキシは何が違いますか?
どちらもクライアントとサーバーの間に立って通信を中継しますが、主な目的が違います。ロードバランサーは複数のサーバーへの振り分けと負荷分散が中心で、リバースプロキシはキャッシュやSSL終端など中継時の処理も含めた役割を指すことが多いです。Nginxのように両方の働きを1つで担えるソフトウェアもあるため、現場では混ぜて呼ばれることもあります。
Q. 自宅の学習環境でもロードバランサーの動きは試せますか?
仮想環境やクラウドの無料利用枠を使えば、複数の簡単なサーバーを立てて、ロードバランサー経由でアクセスが振り分けられる様子を自分で確認する練習ができます。実際にアクセスがどのサーバーに届くかを見比べておくと、現場で構成図を読むときの理解が格段に早くなります。