【ロードバランサのアルゴリズム】

ロードバランサのアルゴリズム とは?

最終更新:
💡 次はどのサーバー? 振り分け方のルール

ロードバランサが、リクエストや接続をどのサーバーへ送るかを決める方式。順番・接続数・重み・ハッシュなどを使い、利用できる方式は製品によって異なります。

📌 このページのポイント
ロードバランサ:送り先の選び方順番に選ぶラウンドロビン1 → 2 → 3接続数を見て選ぶ最小接続数少ない接続へ比率を決める重み付き割り当てを調整IPを手掛かりにIPハッシュ同じIPの送り先使える方式と条件は、製品で確認
代表的な方式の比較。順番や接続数を使うことと、実際のCPU負荷が等しくなることは別です。
ひよこ ひよこ
順番に配れば、負荷は同じになる?
ペンギン先生 ペンギン先生
ラウンドロビンは、送り先を順番に選ぶ方式だよ。ただし同じ件数でも、重い処理と軽い処理では負荷が違う。台数へ均等に送ることと、CPUの負荷が必ず等しくなることは別なんだ。
ひよこ ひよこ
接続が少ないところを選ぶ方法もある?
ペンギン先生 ペンギン先生
NGINXのleast-connectedは、アクティブな接続数が少ないサーバーを選ぶ。AWSのALBには、処理中のリクエスト数が少ない送り先を選ぶleast outstanding requestsがあるよ。接続数とリクエスト数は同じ指標ではなく、製品ごとの方式を確認しよう。
ひよこ ひよこ
性能の違うサーバーなら、どうする?
ペンギン先生 ペンギン先生
重みを使って割り当てを変える方式があるよ。NGINXの公式例は3台のうち一台に重み3を付け、残りを1としている。ただし設定した重みが、今のCPU使用率を自動で測ってくれるわけではない。処理内容や実際の負荷も見て調整しよう。
ひよこ ひよこ
同じ人を同じサーバーへ送れる?
ペンギン先生 ペンギン先生
IPハッシュは送信元IPを手掛かりに選ぶ方式で、NGINXは送り先が利用できない場合を例外として説明している。Cookieなどを使うセッション維持とは区別しよう。AWSのALBも、sticky sessionsでは最初の送り先の選択後に同じ対象へ送る。方式だけでログイン状態やサーバー障害時のデータを保証するものではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ロードバランサのアルゴリズム」って出てきたら「リクエストをどのサーバーへ送るかのルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Load Balancer Routing Algorithm」 = 負荷分散の送り先を選ぶ方式
💬 負荷分散装置の振り分けルールです。分散する単位や計測する状態は方式・製品によって異なります。

参考資料

← 用語集にもどる