TrendScope

ALB のラウンドロビンは「どこ」で行われるのか

情報元:TECH PLAY Magazine 2026-09-01T22:07:30.156Z

AIによる記事の要点

情報元の記事をもとに自動生成しています。誤りや省略が含まれる場合があります。詳細は元記事で確認してください。

【概要】 ALBのラウンドロビンは、ALB全体で1つの順序を管理するのではなく、各load balancer nodeが独立して実行する。ラウンドロビンの対象範囲はクロスゾーン負荷分散の設定で決まり、クライアントがどのnodeに接続するかはクライアント側の名前解決に依存する。 【具体的なポイント】 ・**load balancer nodeの役割** ALBは有効にした各AZに配置されたnodeの集合であり、1台の仮想アプライアンスではない。各nodeはサブネットのIPアドレスを消費し、DNS応答としてクライアントに返されるIPアドレスを持つ。 ・**ラウンドロビンが実行される場所** リクエストがターゲットに届くまでに振り分け先が決まるポイントは2つで、①クライアントがどのnodeに送るか(クライアント側の判断)、②nodeがターゲットグループ内でどのターゲットを選ぶか(node側の処理)である。ラウンドロビンは②でのみ動作し、ターゲットグループ単位で独立している。 ・**DNS応答とクライアントの選択** ALBのDNS名を解決すると複数のnodeのIPアドレスが返されるが、どれを使うかはクライアント側の判断である。AWS公式ブログによると、通常の1回のDNS応答には最大8個のIPアドレスがランダムに返される。ALBが持つactive nodeは全AZ合計で最大100台だが、1回の応答に含まれるのはそのうち最大8個である。 ・**クロスゾーン負荷分散の役割** クロスゾーン負荷分散は、ラウンドロビンが選ぶ候補ターゲットの範囲を決める設定である。有効な場合、各nodeはすべての有効AZの登録済みターゲットへ分散できる。ALBではロードバランサーレベルで常に有効だが、ターゲットグループレベルで無効にできる。 ・**AZ間でターゲット台数が偏った場合の影響** AZ-A に2台、AZ-B に1台のターゲットがある場合、クロスゾーン負荷分散が有効なら各ターゲットが均等に負荷を受ける。無効な場合、AZ-B のnodeは候補が1台のみなため、その1台に2倍の負荷がかかる。 ・**実測による検証結果** curl で10回アクセスしたとき、すべてのリクエストが同じnode(192.0.2.11)に接続された。これはDNS応答に複数のIPアドレスが含まれていても、クライアントのキャッシュとRFC 6724の宛先アドレス選択により、同じIPアドレスが選ばれ続けたためである。node ごとに接続先を固定して50リクエストずつ送ると、各nodeが25対25で均等配分した。 ・**dig と curl の違い** dig や nslookup はOSのキャッシュを経由せずDNSサーバーへ問い合わせるため出力順が毎回変わるが、curl はキャッシュされた応答を使うため同じIPアドレスへ接続し続ける。dig の結果だけで「毎回違うnodeに分散している」と判断するのは誤りである。 【注目点】 ALBのラウンドロビンを正しく理解するには、node ごとの独立した動作とクライアント側の名前解決の挙動を区別する必要がある。クロスゾーン負荷分散を無効にする場合は、AZ間でターゲット台数を揃えることが前提条件である。 **用語** - **load balancer node|有効にした各AZに配置されたALBの実体。ELB管理下で、ユーザーが個別に操作できない** - **クロスゾーン負荷分散|ラウンドロビンの候補ターゲットを全AZに広げるか、同一AZに限定するかを決める設定** - **ターゲットグループ|転送先ターゲットをまとめた論理グループ。振り分けアルゴリズムはここで設定される**

元記事を読む

編集・出典方針 · ニュースの読み方 · 記事一覧