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

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

💡 「次はどのサーバ?」——ロードバランサが判断する振り分けのルールブック。
📌 このページのポイント
ロードバランサのアルゴリズム比較 クライアント ロードバランサ サーバA weight=1 サーバB weight=2 サーバC weight=1 主な方式: ラウンドロビン 最小接続数 IPハッシュ 加重ラウンドロビン 順番に均等配分 接続数が少ない方 同一IPを同サーバへ 性能比で振り分け
ロードバランサが複数サーバにリクエストを振り分けるアルゴリズムの比較
ひよこ ひよこ

ロードバランサってどうやってサーバを選ぶの?

ペンギン先生 ペンギン先生

アルゴリズムによって決めるんだよ。一番シンプルな「ラウンドロビン」はサーバ1→2→3→1…と順番に振り分けるんだ。均等に分散できてわかりやすいよ。

ひよこ ひよこ

他にどんなアルゴリズムがあるの?

ペンギン先生 ペンギン先生

「最小接続数」は今アクティブな接続が一番少ないサーバを選ぶよ。処理時間がバラつく場合に向いてるんだ。「IPハッシュ」はクライアントのIPアドレスを使って常に同じサーバに送る方式で、ログイン状態などを維持したいときに使うんだよ。

ひよこ ひよこ

サーバのスペックが違う場合はどうするの?

ペンギン先生 ペンギン先生

「加重ラウンドロビン」を使うんだよ。高性能なサーバにはweight=3、普通のサーバにはweight=1みたいに重みを設定して、性能比率に応じてリクエストを多く送れるんだ。

ひよこ ひよこ

どのアルゴリズムを選べばいいの?

ペンギン先生 ペンギン先生

サーバが同一スペックで処理時間が均一ならラウンドロビン、処理時間がバラつくなら最小接続数、セッション維持が必要ならIPハッシュが向いているよ。多くのクラウドLBデフォルトラウンドロビンで、必要に応じて切り替えられるんだ。

ひよこ ひよこ

アルゴリズムを間違えると何か困ることはあるの?

ペンギン先生 ペンギン先生

たとえばセッション情報をサーバ側で持つアプリにラウンドロビンを使うと、別のサーバに振られてログアウトしてしまうことがあるよ。IPハッシュやスティッキーセッションを使うか、セッション情報をRedisなど外部に持つ設計にするのが解決策なんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ロードバランサのアルゴリズム」って出てきたら「リクエストをどのサーバに送るかのルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Load Balancer Scheduling Algorithm」 = ロードバランサのスケジューリングアルゴリズム
💬 「ロードバランサ」は「負荷(Load)を均衡(Balance)させる装置」のことで、アルゴリズムはその「振り分け方のルール」だよ。どのルールを選ぶかでシステムのパフォーマンスが大きく変わるんだ。
← 用語集にもどる