負荷分散とは(全体像)
負荷分散とは、たくさんのアクセスを複数のサーバーに分けて、1台に負担が集中しないようにするしくみである。アクセスをならすことで、速さと安定をたもつのだ。
身近にたとえると、レジの案内係のようなもの。レジが1つだと長い行列ができるので、案内係が「あちらの空いているレジへどうぞ」とお客を複数のレジに振り分ける——あの役割である。
押さえるのは、振り分け方のL4とL7の違いと、どのサーバーに送るかを決めるアルゴリズムである。
詳しく:L4とL7の違いとアルゴリズムだけ覚えれば戦える
ここが記事の心臓部。まず振り分け方の2種類を見ていくのだ。
L4 と L7 のロードバランサ
| 種類 | 見るもの | 特徴 |
|---|---|---|
| L4 | IPアドレスとポート(トランスポート層) | 中身を見ないので速い |
| L7 | URL・ホスト名・Cookieなど(アプリ層) | 中身を見て賢く振り分け(高度な制御) |
ここでひっかけが「L4とL7は同じもの」という誤解である。L4はポートで素早く振り分ける、L7はURLなどの中身を見て賢く振り分けるで、見ているものがちがうのだ。
次に、どのサーバーに送るかを決めるアルゴリズムである。
主な振り分けアルゴリズム
| 方式 | 振り分け方 |
|---|---|
| ラウンドロビン | 順番に1台ずつ均等に回す |
| 重み付き | 性能の高いサーバーに多めに回す |
| 最小接続 | いま一番すいているサーバーに回す |
なお、DSR(直接応答)は、サーバーの返事をロードバランサを通さず直接返す方式で、大量アクセス向けである。ただし「DSRは常に最速」とは限らず、実装が複雑で用途次第だ。また、ヘルスチェックで正常なサーバーだけに振り分けるのも大切なしくみである。
わかりやすく言い換えると
要するに、レジの案内係でイメージするとよい。
①L4 … 番号札の数字(ポート)だけ見て、すばやく空いたレジへ案内する
②L7 … お客の用件(URL)まで見て、ぴったりの窓口へ案内する
③ラウンドロビン/最小接続 … 順番に回す/いちばんすいた列へ回す
つまり、L4はポートで速い・L7は中身を見て賢い。振り分けはラウンドロビンや最小接続などで決める。ここが試験の急所である。
試験のツボ
🔴 一番出る:L4とL7の違い
①L4 = ポートで素早く振り分け(中身を見ない)
②L7 = URLなどの中身を見て賢く振り分け
🔴 次に出る:振り分けアルゴリズム
①ラウンドロビン = 順番に均等に回す
②最小接続 = いま一番すいているサーバーに回す
🟡 押さえると安定:ヘルスチェックとDSR
①ヘルスチェックで正常なサーバーだけに振り分ける
②DSRは直接応答する方式(常に最速とは限らない)
よくある間違い
①「L4とL7は同じ振り分け方である」→ ✗ L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける。見るものがちがう。
②「DSRはどんなときでも必ず最速である」→ ✗ 用途次第で、実装も複雑。常に最速とは限らない。
③「ロードバランサは止まっているサーバーにも振り分ける」→ ✗ ヘルスチェックで、正常なサーバーだけに振り分ける。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(負荷分散とは)
負荷分散に関する次の記述のうち、正しいものはどれか。
- 負荷分散は画面の明るさを段階で決めるための専用の設定だとされているものなのである
- 負荷分散は、アクセスを複数のサーバーに振り分けて1台に集中させないしくみである
- 負荷分散は音の大きさを段階で決めるための専用の機能だとされているものなのである
- 負荷分散は保存した文字を全部消すための専用の命令だとされているものなのである
解答は 2 である。
負荷分散は、アクセスを複数のサーバーに振り分けて、1台に集中させないしくみである。レジの案内係が空いた列へお客を回すのに似ているのだ。
選択肢1・3・4の「明るさ」「音の大きさ」「全部消す」はどれも誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 画面の明るさの設定ではない |
| 2 | ✓ | 複数サーバーに振り分け集中を防ぐ |
| 3 | ✗ | 音の大きさの機能ではない |
| 4 | ✗ | 文字を消す命令ではない |
オリジナル問題2(L4とL7)
L4とL7のロードバランサに関する次の記述のうち、正しいものはどれか。
- L4もL7もまったく同じ振り分け方で、見ているものにも違いはないものだとされている
- L4もL7も、画面の明るさを段階で決めるための専用の設定だとされているのである
- L4もL7も、音の大きさを段階で決める専用の機能だとされている
- L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける点が違う
解答は 4 である。
L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける点がちがう。見ている階層がちがうのが本質なのだ。
選択肢1の「まったく同じ」は誤りである。選択肢2・3の「明るさ」「音の大きさ」も関係ない。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 見るものが違う(同じではない) |
| 2 | ✗ | 画面の明るさの設定ではない |
| 3 | ✗ | 音の大きさの機能ではない |
| 4 | ✓ | L4はポート・L7は中身を見て振り分ける |
オリジナル問題3(アルゴリズム)
負荷分散のアルゴリズムに関する次の記述のうち、正しいものはどれか。
- ラウンドロビンは順番に均等に回し、最小接続はいま一番すいたサーバーに回す
- ラウンドロビンは画面を必ず点滅させる専用の設定だとされているもの
- ラウンドロビンは音を必ず二重に鳴らすための専用の機能だとされているものなのである
- ラウンドロビンは保存した文字を全部消す専用の命令だとされているものなのである
解答は 1 である。
ラウンドロビンは順番に均等に回す方式、最小接続はいま一番すいているサーバーに回す方式である。混雑をならすための振り分け方なのだ。
選択肢2・3・4の「点滅」「二重に鳴らす」「全部消す」はどれも誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | ラウンドロビンは順番・最小接続はすいた所 |
| 2 | ✗ | 画面を点滅させる設定ではない |
| 3 | ✗ | 音を鳴らす機能ではない |
| 4 | ✗ | 文字を消す命令ではない |
まとめ
押さえどころ
- 🔴 L4とL7 = L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける。見る階層がちがう。
- 🔴 アルゴリズム = ラウンドロビン(順番)・最小接続(すいた所)・重み付き(性能に応じて)。
- 🟡 ヘルスチェックとDSR = 正常なサーバーだけに振り分ける/DSRは直接応答(常に最速とは限らない)。
次に学ぶ
- OSI参照モデル(7層) ── L4(トランスポート層)とL7(アプリ層)の位置づけがわかる。
- TCP輻輳制御(CUBIC・BBR) ── L4で動くTCPの速度調整のしくみ。
執筆: SikakuQuest編集部