Amazon Elastic Compute Cloud (Amazon EC2) に Network Load Balancer の IP アドレスが表示されないため、原因を把握したいです。
簡単な説明
Network Load Balancer には、アベイラビリティーゾーン (AZ) ごとに 1 個の固定 IP アドレスが割り当てられます。パブリック Network Load Balancer では、各ゾーンには静的プライベート IP アドレスと静的パブリック IP アドレスが割り当てられます。ゾーンを追加した場合、Amazon EC2 は Network Load Balancer の DNS 名に IP アドレスを追加します。Network Load Balancer の IP アドレスを確認するには、Network Load Balancer の DNS 名に DNS ルックアップを実行します。
複数のアベイラビリティーゾーンで動作するロードバランサーは、DNS 応答において、正常なゾーンの IP アドレスのみを返します。
たとえば、3 個のうち 2 個のアベイラビリティーゾーンのみ正常な場合、DNS は 2 個の IP アドレスのみを返します。ただし、すべてのゾーンが正常でない場合は、DNS はフェイルオープンし、すべてのゾーンの IP アドレスを返します。Network Load Balancer でクロスゾーン負荷分散が無効な場合、DNS は通常、アクティブなターゲットを含むゾーンの IP アドレスを返します。ただし、フェイルオープンの状況では、ターゲットの有無にかかわらず、DNS はすべてのゾーンの IP アドレスを返します。
解決策
アベイラビリティーゾーンごとに、1 つ以上の正常なターゲットがあることを確認してください。target-group-1 のターゲットが us-east-1a に、target-2 が us-east-1b に配置されている場合、両方の Network Load Balancer の IP アドレスは到達可能です。その場合は、クロスゾーンが有効でも無効でも、DNS ルックアップで IP アドレスを解決できます。
各ターゲットグループのゾーンごとに、1 つ以上の正常なターゲットがない場合、設計が要因で接続が断続的になる可能性があります。たとえば、target-group-1 には us-east-1a でポート 80 をリッスンする target-1、target-group-2 では us-east-1b でポート 8080 をリッスンする target-2 がそれぞれ配置されている場合、target-group-1 では us-east-1b のターゲットが見つからず、target-group-2 でも us-east-1b のターゲットが見つかりません。Network Load Balancer の DNS はフェイルオープンし、Amazon EC2 にはすべての IP アドレスが表示される可能性があります。
この問題を解決するには、各ターゲットグループの各ゾーンに別のターゲットを追加してください。または、Network Load Balancer でクロスゾーンを有効にすると、異なるゾーン間で接続できます。
us-east-1a に target-group-1 のターゲットがある場合、us-east-1b には正常なターゲットがないため、us-east-1a の IP アドレスのみが Amazon EC2 に表示されます。この問題を解決するには、同じターゲットグループに us-east-1b のターゲットを新たに追加するか、クロスゾーンを有効にしてください。