每个通配符子域指向不同的 IP 地址

Each wild card sub-domain points to different IP address

我一直在使用 AWS Route-53 作为我的应用程序的 dns 服务,并在我的代码中说,对于每个 http 请求,我都需要创建一些动态子域并将其指向获取的新 ec2 实例即时创建。

现在任何人都应该能够使用新创建的子域向新创建的 ec2 实例发出请求。

我知道我可以使用通配符dns记录,但它不只指向一个IP吗?

如何让创建的每个子域始终指向新的 ec2 实例?

创建*.example.com的A记录,并赋值给IP地址。

如果任何子域没有显式记录,它将默认为该记录。

自动添加DNS记录的可能解决方案。

  • 创建 EC2 实例时,添加应分配给此实例的域名标签。让 CloudWatch 事件检测到 "StartInstance",然后触发 Lambda 通过 API 添加 DNS 记录。
  • 编写一个可以确定用于每个子域的 IP 地址的代理。或者通过某种自动化方式手动添加它 (SSM/Ansible)。

traefik 正是我所需要的。我使用 etcd 配置 traefik 作为它的提供者,只需向 etcd 服务器创建条目,我就可以实现我想要的。

现在我只有一个通配符域映射到我 运行 traefik 上的 ec2 实例,它监视 etcd 服务器以查找任何以 /traefik/ 作为前缀的新条目。然后它会动态生成新配置并负责根据 HOST header.

将任何请求路由到目标服务器