跨多个 EC2 实例创建子域

跨多个 EC2 实例创建子域

背景:我有一个域名,比如说 example.com。我为 EC2 上的一个实例分配一个弹性 IP,并将 DNS 名称指定为 example.com。
我想在这个域下放置 5 个 EC2 实例,如下所示:
i1.example.com、i2.example.com、...

问题 :

1 - 上述内容可能吗?
2 - 如果可以,如何实现? 如果不能,有什么解决方法?

谢谢

答案1

对的,这是可能的。

对于单个“example.com”服务器,您必须使用弹性 IP,并将 example.com 的 A 记录分配给该 IP。这是由于“区域顶点”问题造成的。https://forums.aws.amazon.com/thread.jspa?threadID=32044

对于所有其他子域,我建议您使用从“i1.example.com”到 EC2 分配的域名的 CNAME(例如“ec2-AA-BB-CC-DD.compute-1.amazonaws.com”)。此方法有两个好处:

  1. 您不会耗尽弹性 IP 的限制http://aws.amazon.com/ec2/faqs/#Why_am_I_limited_to_5_Elastic_IP_addresses

  2. 当引用这些系统时,AWS EC2 DNS 服务器始终报告正确的 IP - 如果在外部引用,则提供外部 IP;如果在 EC2 云内部使用,则提供内部 IP(无额外带宽成本)

答案2

最简单的方法是使用其他 4 个弹性 IP,并将它们应用于 i-实例,在这种情况下,它们只是公共 DNS 中其他 IP 的附加 DNS 条目 - 与 www.example.com 没有什么不同。

一个稍微不那么丑陋(但更复杂)的方法是运行一个反向代理,查看传入的请求并将其转发到 i-基于应用层可识别内容的 .example.com 实例(例如 HTTP vhost)

一个更丑陋的版本将涉及为 example.com 采购托管 + 动态 DNS 服务,并编写一个启动脚本来更新 i-适当实例。

相关内容