2 つのアベイラビリティゾーンに Elastic Load Balancer (ELB) を設定しましたが、DNS には IP アドレスが 1 つしか表示されません。
簡単な説明
Application Load Balancerを使用している場合、クロスゾーンロードバランシングは常にオンに設定されています。クロスゾーンロードバランシングをオフにはできませんが、ターゲットグループレベルで変更することは可能です。
ただし、Network Load Balancerとゲートウェイロードバランサーに関しては、クロスゾーンロードバランシングはデフォルトではオフに設定されています。
クロスゾーンロードバランシングがオフになっている場合、アベイラビリティーゾーンには、各ターゲットグループに 1 つ以上の正常なターゲットが必要です。クロスゾーンロードバランシングがオンになっている場合、いずれかのアベイラビリティゾーンの各ターゲットグループに 1 つ以上の正常なターゲットが存在する必要があります。それぞれの条件に沿ってアベイラビリティゾーンが正常な状態に保たれ、対応する Elastic Load Balancer ノードの IP アドレスが Elastic Load Balancer DNS に追加されます。
解決策
クロスゾーンロードバランシングがオフになっている場合
以下は、2 つのアベイラビリティゾーン (AZ1 と AZ2) 間でクロスゾーンロードバランシングがオフになっている場合の例です。
アベイラビリティゾーン 1 (AZ1) には、A と B という 2 つのターゲットグループがあり、それぞれに固有のターゲット A1 と B1 があります。ターゲット A1 は異常、ターゲット B1 は正常です。ターゲット A1 が異常であるため、AZ1 も異常です。
アベイラビリティゾーン 2 (AZ2) にも、A と B という 2 つのターゲットグループが存在しており、かつ、それぞれに独自のターゲットである A2 と B2 が存在しています。ターゲット A2 と B2 は、両方とも正常です。両方のターゲットグループ内のそれぞれのターゲットは正常なので、AZ2 も正常です。
AZ2 が唯一の正常なアベイラビリティゾーンなので、Elastic Load Balancer の DNS に AZ2 の IP アドレスが含まれます。その結果、Elastic Load Balancer のドメインを解決したとき、AZ2 の IP アドレスのみが表示されることになります。
その後、トラフィックは、AZ2 の Elastic Load Balancer のノードを介して対応するターゲットグループの正常なターゲットにルーティングされます。ターゲットグループに複数の正常なターゲットがある場合は、ロードバランサーのルーティングアルゴリズムに基づいて、1 つのターゲットが選択されます。
両方のアベイラビリティゾーンが異常である場合、Elastic Load Balancer は、fail-open します。その後、それぞれの Elastic Load Balancer IP アドレスがロードバランサーの DNS に追加されます。
クロスゾーンロードバランシングがオンになっている場合
以下は、同じアベイラビリティゾーン AZ1 と AZ2 を使用したとき、クロスゾーンロードバランシングがオンになっている場合の例です。
AZ1 内では、ターゲット A1 は異常、ターゲット B1 は正常です。AZ2 内では、ターゲット A2 も B2 も両方ともが正常です。それぞれのアベイラビリティゾーンには、1 つ以上の正常なターゲットが存在しているため、Elastic Load Balancer は Elastic Load Balancer ホスト名の両方の IP アドレスを DNS に内包します。
その後、トラフィックはいずれかの Elastic Load Balancer ノードにルーティングされ、対応するターゲットグループのターゲットに転送されます。ターゲットグループに複数の正常なターゲットがある場合は、ロードバランサーのルーティングアルゴリズムに基づいて、1 つのターゲットが選択されます。
AZ1 のターゲット B1 が異常であって、AZ2 のターゲット B2 も異常である場合、両方のアベイラビリティゾーンが異常です。両方のアベイラビリティゾーンも正常ではないことにより、Elastic Load Balancer が fails-open します。その後、それぞれの Elastic Load Balancer IP アドレスがロードバランサーの DNS に追加されます。その結果、ドメインを解決すると、アベイラビリティゾーンの IP アドレスが両方とも表示されます。
関連情報
Application Load Balancer では、ターゲットグループごとのクロスゾーンロードバランシングの無効化がサポートされるようになりました