如何使用 Route 53 在 AWS 中使用单个弹性 IP 地址为多个子域提供服务?

How can I serve multiple sub-domains using a single Elastic IP Address in AWS using Route 53?

我在 AWS 上有一个弹性 IP 地址,我想使用该 IP 地址根据子域将流量路由到多个不同的 EC2 实例。基本上,以与 Apache httpd 服务器中的虚拟主机相同的方式。例如:

每个域的所有流量都将转到 xxx.xxx.xxx.xxx,然后根据子域名 Route 53 将流量发送到正确的实例。

我已经阅读了 Route 53 的文档,但看不出这是如何完成的。我也查看了 Amazon ELB,但不确定是否可行。

有谁知道如何仅使用 AWS 工具(Route 53 and/or ELB)进行设置?如果可以避免,我宁愿不必编写脚本或使用反向代理。

任何想法或帮助都会很棒。提前致谢。

对于要将流量重定向到的每个不同的 EC2 实例,您需要 1 个弹性 IP 地址。

  1. 为 example.com 创建 CNAME 或 ALIAS 记录并将其指向您的 ELB。
  2. 对于每个需要 sub-domain 的不同 EC2 实例,请执行以下操作:
    1. 分配弹性 IP 地址。
    2. 将该弹性 IP 地址分配给 EC2 实例。
    3. 在指向子域的 Route 53 中创建一条 A 记录。example.com 指向该弹性 IP 地址。

注意:由于您的 EC2 实例需要直接访问,因此它们需要位于 public 子网内。

您不需要为每台服务器分配一个弹性 IP。每个服务器都已经有一个 IP,所以你可以使用它(如果你真的想通过 IP 地址来寻址服务器) - 但你可能应该做的是在你的域上为每个服务器设置一个 cname,然后寻址服务器的通过 dns 名称,而不是通过 ip 地址。

即:

server1.example.com
server2.example.com
server3.example.com 

等等

不需要使用任何 EIP。

也许您可以更好地解释为什么您认为所有流量都需要通过一个 IP 地址?

我不能确定为什么 AWS 将您限制为仅 5 个 EIP,但我很确定这是因为如果您发现您需要数百个 EIP,那么您可能做错了 -并强迫您提出 5 个以上的请求,使他们能够与您展开讨论并帮助您以更好的方式进行讨论。