負荷分散(L4/L7・DSR)とは?アクセスを複数のサーバーに振り分けて1台に集中させないしくみ

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

負荷分散とは(全体像)

負荷分散とは、たくさんのアクセスを複数のサーバーに分けて、1台に負担が集中しないようにするしくみである。アクセスをならすことで、速さと安定をたもつのだ。

身近にたとえると、レジの案内係のようなもの。レジが1つだと長い行列ができるので、案内係が「あちらの空いているレジへどうぞ」とお客を複数のレジに振り分ける——あの役割である。

押さえるのは、振り分け方のL4とL7の違いと、どのサーバーに送るかを決めるアルゴリズムである。


詳しく:L4とL7の違いとアルゴリズムだけ覚えれば戦える

ここが記事の心臓部。まず振り分け方の2種類を見ていくのだ。

L4 と L7 のロードバランサ

種類見るもの特徴
L4IPアドレスとポート(トランスポート層)中身を見ないので速い
L7URL・ホスト名・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 負荷分散の役割

負荷分散に関する次の記述のうち、正しいものはどれか。

  1. 負荷分散は画面の明るさを段階で決めるための専用の設定だとされているものなのである
  2. 負荷分散は、アクセスを複数のサーバーに振り分けて1台に集中させないしくみである
  3. 負荷分散は音の大きさを段階で決めるための専用の機能だとされているものなのである
  4. 負荷分散は保存した文字を全部消すための専用の命令だとされているものなのである
アルゴキュブ
アルゴキュブ 解答・解説

解答は 2 である。

負荷分散は、アクセスを複数のサーバーに振り分けて、1台に集中させないしくみである。レジの案内係が空いた列へお客を回すのに似ているのだ。

選択肢1・3・4の「明るさ」「音の大きさ」「全部消す」はどれも誤りである。

選択肢判定理由
1画面の明るさの設定ではない
2複数サーバーに振り分け集中を防ぐ
3音の大きさの機能ではない
4文字を消す命令ではない

オリジナル問題2(L4とL7)

📝 オリジナル問題 2 L4とL7の違い

L4とL7のロードバランサに関する次の記述のうち、正しいものはどれか。

  1. L4もL7もまったく同じ振り分け方で、見ているものにも違いはないものだとされている
  2. L4もL7も、画面の明るさを段階で決めるための専用の設定だとされているのである
  3. L4もL7も、音の大きさを段階で決める専用の機能だとされている
  4. L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける点が違う
アルゴキュブ
アルゴキュブ 解答・解説

解答は 4 である。

L4はポートで素早く、L7はURLなど中身を見て賢く振り分ける点がちがう。見ている階層がちがうのが本質なのだ。

選択肢1の「まったく同じ」は誤りである。選択肢2・3の「明るさ」「音の大きさ」も関係ない。

選択肢判定理由
1見るものが違う(同じではない)
2画面の明るさの設定ではない
3音の大きさの機能ではない
4L4はポート・L7は中身を見て振り分ける

オリジナル問題3(アルゴリズム)

📝 オリジナル問題 3 振り分けアルゴリズム

負荷分散のアルゴリズムに関する次の記述のうち、正しいものはどれか。

  1. ラウンドロビンは順番に均等に回し、最小接続はいま一番すいたサーバーに回す
  2. ラウンドロビンは画面を必ず点滅させる専用の設定だとされているもの
  3. ラウンドロビンは音を必ず二重に鳴らすための専用の機能だとされているものなのである
  4. ラウンドロビンは保存した文字を全部消す専用の命令だとされているものなのである
アルゴキュブ
アルゴキュブ 解答・解説

解答は 1 である。

ラウンドロビンは順番に均等に回す方式、最小接続はいま一番すいているサーバーに回す方式である。混雑をならすための振り分け方なのだ。

選択肢2・3・4の「点滅」「二重に鳴らす」「全部消す」はどれも誤りである。

選択肢判定理由
1ラウンドロビンは順番・最小接続はすいた所
2画面を点滅させる設定ではない
3音を鳴らす機能ではない
4文字を消す命令ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る