Amazon-Web-Services

為什麼我的 AWS NLB 的多個地址記錄中只有一個同時工作?

  • October 10, 2020

我正在使用 AWS 網路負載均衡器。當我發出nslookup dualstack.app.elb.us-east-2.amazonaws.com時,輸出是

Non-authoritative answer:
Name:   dualstack.app.elb.us-east-2.amazonaws.com
Address: 3.xxx.xxx.176
Name:   dualstack.app.elb.us-east-2.amazonaws.com
Address: 18.xxx.xxx.40

我注意到這些 IP 中的每一個都位於不同的可用區域中,並且一次只有一個 IP 有效。dualstack.app.elb.us-east-2.amazonaws.com/healthcheck向via發出請求curl只有一半的時間有效。但是,從我的瀏覽器發出相同的請求 100% 的時間都有效,因為 chrome 有自己的處理循環 DNS 的方法(相關:https ://serverfault.com/a/774411,https : //serverfault.com /a/852421 )

這是 NLB 的預期行為,即當存在多個 IP 時,一次只有一個 IP 可以工作?

上面的答案告訴你原因,但不告訴你如何解決。您說過您使用的是 ELB,它通常指的是經典的 ELB,而不是 ALB / NLB。使用 ELB,您可以啟用跨區域負載平衡。預設情況下,它通過 ALB 啟用,因此如果您使用其中一個,這對您來說不是正確的答案 - 請更新您的問題並讓我知道是否是這種情況。

aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":true}}"

或者

使用控制台啟用跨區域負載平衡

  1. 在https://console.aws.amazon.com/ec2/打開 Amazon EC2 控制台。
  2. 在導航窗格的負載均衡下,選擇負載均衡器。
  3. 選擇您的負載均衡器。
  4. 在描述選項卡上,選擇更改跨區域負載平衡設置。
  5. 在配置跨區域負載平衡頁面上,選擇啟用。
  6. 選擇保存。

引用自:https://serverfault.com/questions/1032427