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

时间:2016-01-21 18:18:51

标签: amazon-web-services amazon-ec2 network-programming amazon-elb amazon-route53

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

  • example.com - ELB:xxx.xxx.xxx.xxx
  • test.example.com指向EC2实例ID 1
  • build.example.com指向EC2实例ID 2

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

我已经阅读了Route 53的文档,但我看不出这是怎么做到的。我也看了亚马逊ELB,但不确定这是否有用。

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

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

2 个答案:

答案 0 :(得分:4)

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

即:

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

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

我无法确定为什么AWS限制你只使用5个EIP,但我很确定它是因为如果你发现你需要数百个EIP,那么你可能做错了 - 并强迫你请求超过5个,使他们能够与您进行讨论,并帮助您更好地完成这项工作。

答案 1 :(得分:0)

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

  1. 为example.com创建您的CNAME或ALIAS记录,并将其指向您的ELB。
  2. 对于您需要子域的每个不同的EC2实例,请执行以下操作:
    1. 分配弹性IP地址。
    2. 将弹性IP地址分配给EC2实例。
    3. 在Route 53中创建A记录,将subdomain.example.com指向该弹性IP地址。
  3. 注意:由于您的EC2实例需要直接访问,因此它们需要驻留在公有子网内。