AWS ALB 解析为 2 个 IP。这些是什么?

Ner*_*eph 5 amazon-web-services amazon-ecs amazon-alb

我已经为我的应用程序设置了 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 的信息将不胜感激。

MLu*_*MLu 4

ALB 是用户和服务器之间的中间人。用户通过 ALB\xe2\x80\x99s 公共 IP 地址连接到 ALB,然后 ALB 通过私有 IP 连接到您的 ECS 服务器。

\n\n

解析 ALB 主机名时看到的 IP 地址是公共 IP。这是您的用户需要连接才能使用您的服务的内容,也是最终必须由您的域名解析的内容(例如demo.example.com)。

\n\n

但是,请勿将您解析的实际 IP 地址放入demo.example.com DNS 记录!ALB IP将根据负载和其他因素随时间而变化!

\n\n

正确的方法是创建指向 ALB 主机名的CNAME 记录。只要 ALB DNS 记录中的 IP 发生变化,AWS 就会自动更新它们,并且因为您的 demo.example.com 仅引用ALB 主机名,而不引用实际的ALB IP 地址,所以一切都会按预期运行。

\n\n
\n\n

所以你需要创建:

\n\n
demo.example.com. CNAME your-alb-abcdefgh.us-east-1.elb.amazonaws.com.\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,当您的用户尝试解析时,demo.example.com他们将得到一个答案:“我不知道 IP,请改为解析your-alb-abcdefgh.us-east-1.elb.amazonaws.com”。。然后解析your-alb-...elb.amazonaws.com将返回当前有效的 ALB IP 地址。

\n\n
\n\n

我知道如果您对 DNS 的经验有限,这可能会有点令人困惑。请随时要求澄清:)

\n\n
\n\n

更新:您会看到 2 个外部 IP,因为 ALB 必须位于至少 2 个不同的子网中才能实现高可用性。您在创建 ALB 时已选择子网:

\n\n

ALB 可用区

\n\n

您可以选择更多可用区/子网,在这种情况下您将拥有更多公共 IP。但 2 是最小值。

\n\n

希望有帮助:)

\n