AWS ALB 解析為 2 個 IP。這些是什麼?
我為我的應用程序設置了 AWS ALB。ALB 連接到具有 2 個實例的 AWS ECS 集群。這 2 個實例位於私有子網中。當我解析 ALB DNS 名稱的 IP 時,我得到 2 個 IP。這些 IP 可用於訪問我的應用程序。
*那些IP是什麼?*我在 ALB 控制台或 ECS 控制台中找不到任何這些 IP。
我打算為此 ALB 創建自己的域名,但我沒有使用 AWS Route53。我打算使用我自己的域名或我已經擁有的子域。所以我想檢查這些 IP 是 ALB 的 IP 還是我的底層 EC2 實例的 IP。
任何有關 ALB IP 的資訊將不勝感激。
ALB 是您的使用者和伺服器之間的*中間人。*使用者通過 ALB 的公共 IP 地址連接到 ALB,然後 ALB 通過私有 IP 地址連接到您的 ECS 伺服器。
您在解析 ALB 主機名時看到的 IP 地址是Public IPs。這就是您的使用者需要連接才能使用您的服務,並且最終必須通過您的域名(例如demo.example.com)來解決。
但是**,不要**將您解析的實際 IP 放入您的demo.example.com DNS 記錄!ALB IP將根據負載和其他因素隨時間變化!
正確的方法是創建指向 ALB 主機名的CNAME 記錄。AWS 會在 ALB DNS 記錄中的 IP 發生更改時自動更新它們,因為您的 demo.example.com 僅引用ALB 主機名而不是實際的ALB IP 地址,所以一切都會按預期工作。
因此,您需要創建:
demo.example.com. CNAME your-alb-abcdefgh.us-east-1.elb.amazonaws.com.
然後,當您的使用者嘗試解析時,
demo.example.com
他們會得到*“我不知道 IP,請your-alb-abcdefgh.us-east-1.elb.amazonaws.com
改為解析”的答案。*. 然後解析your-alb-...elb.amazonaws.com
將返回目前有效的 ALB IP 地址。我知道如果您對 DNS 的經驗有限,可能會有些困惑。隨時要求澄清:)
更新:您會看到 2 個外部 IP,因為 ALB 必須位於至少 2 個不同的子網中才能實現高可用性。您在創建 ALB 時選擇了子網:
您可以選擇更多可用區/子網,在這種情況下,您將擁有更多公共 IP。但 2 是最小值。
希望有幫助:)