0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】ALBはDNSラウンドロビン + AZ毎に配置するLBノード + クロスゾーン負荷分散【AWS】

Last updated at Posted at 2025-07-01

はじめに

ALBを作成する時

  • 物理的には複数のサブネットにLBノードを配置する
  • ALB自体には一つのDNS名しか振られない

そのDNS名はどのLBノードを指しているのか?という疑問を解決したい。

画像のような実体を表していない構成図の実体を理解した備忘録です。

image.png

ALBに振られたDNS名が何を指しているのか理解する

  • ALB作成時にLBノードを配置するサブネットを指定するため、構成図は以下の通り

image.png

親LBに当たるものが何なのかを理解するためにnslookupする

> nslookup test-lb-1260472969.us-east-1.elb.amazonaws.com
<  98.84.240.113
   54.87.217.213
> nslookup test-lb-1260472969.us-east-1.elb.amazonaws.com
<  54.87.217.213
   98.84.240.113
> nslookup test-lb-1260472969.us-east-1.elb.amazonaws.com
<  98.84.240.113
   54.87.217.213

上記の実行結果から親LBだと思っていた物が、DNSラウンドロビンだったことが分かる

LBノードを増やして再度nslookupする

  • サブネットを一つ増やしてLBノードを配置し、ターゲットを指定する
  • 構成図は以下の通り

image.png

> nslookup test-lb-1260472969.us-east-1.elb.amazonaws.com 
<  98.84.240.113
   54.87.217.213
   34.193.27.174

上記の実行結果からDNSラウンドロビンが返すIPアドレス群はLBノードのIPアドレスであることが分かる

LBノードの生IPにアクセスする

  • nslookupによって特定したLBノードの生IPにアクセスする
  • LBノードはサブネットに配置しているので、同じAZのターゲットにしかルーティング
    しないこと
    を期待した構成図は以下の通り

image.png

下記の実行結果からLBノードに直接アクセスしても
同AZのターゲットのみにルーティングしている訳ではなく
ターゲットグループ全体にラウンドロビンでリクエストを振り分けていることが分かる

> curl 98.84.240.113
<  instance: us-east-1b
> curl 98.84.240.113
<  instance: us-east-1a
> curl 98.84.240.113
<  instance: us-east-1c

よって期待から外れ、以下の構成図のようになる

image.png

何故このような挙動を取るのか

  • DNSラウンドロビンLBノードのIPアドレスを順番に返すだけなので
    どこかのAZにターゲットが偏って配置された場合、トラフィックが偏ってしまう。
    クロスゾーン負荷分散によって、トラフィックの偏りを防止している。
  • クロスゾーン負荷分散をオフにする
    • ターゲットグループ属性を編集 > ターゲット選択設定 から変更する

image.png

下記の実行結果からクロスゾーン負荷分散をオフにした場合
同AZのターゲットのみルーティングすることが分かる

> curl 98.84.240.113
<  instance: us-east-1b
> curl 98.84.240.113
<  instance: us-east-1b

つまり、以下の構成図となる

image.png

LBノードの効力はAZ単位なのか?サブネット単位なのか?

構成図は以下の通り

image.png

以下の実行結果から同AZのサブネットにLBノードが配置されていれば
サブネットにLBノードが配置されていなくても
トラフィックを受信出来ることが分かる

> curl test-lb-1260472969.us-east-1.elb.amazonaws.com
<  instance: us-east-1b
> curl test-lb-1260472969.us-east-1.elb.amazonaws.com
<  instance: us-east-1b-2
> curl test-lb-1260472969.us-east-1.elb.amazonaws.com
<  instance: us-east-1a

さいごに

実体としてALB

  • DNSラウンドロビン
  • AZ毎に配置されたLBノードが組むクロスゾーン負荷分散
    の2段構造になっている。

ただ、基本的にLBノードの存在を意識する必要はない。
ALB作成時に、ターゲットを配置するAZのサブネットを選択する程度の意識で十分。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?