Route 53 如何将多个 public 托管区域连接到一个域名?

How does Route 53 connect multiple public hosted zones to one domain name?

我有两个public hosted zones in Amazon Route 53 for the same domain name (which has Route 53 as registrar), for the reason that Route 53 automatically created one when I registered the domain name and that the second one was created by Terraform.

据我所知,第二个区域中的 DNS 记录集未应用,即它们不会返回域查询。我是否必须删除第一个区域才能使第二个区域中的记录集处于活动状态?

以下是 AWS Route 53 常见问题的摘录

Q. Can I create multiple hosted zones for the same domain name? 

Yes. Creating multiple hosted zones allows you to verify your DNS setting in a “test” environment, and then replicate those settings on a “production” hosted zone. For example, hosted zone Z1234 might be your test version of example.com, hosted on name servers ns-1, ns-2, ns-3, and ns-4. Similarly, hosted zone Z5678 might be your production version of example.com, hosted on ns-5, ns-6, ns-7, and ns-8. Since each hosted zone has a virtual set of name servers associated with that zone, Route 53 will answer DNS queries for example.com differently depending on which name server you send the DNS query to.

Click here for more details

据我所知,哪个托管区域处于活动状态,这意味着它的记录集被返回以供对域的查询,这取决于在域中注册的名称服务器。因此,为了使我的第二个区域处于活动状态,我必须在 Route 53 中更新域的名称服务器,以对应于所需托管区域的名称服务器。

How is Domain-Name, Namespaces, and Hosted-Zone connected?

假设您从 GoDaddy 购买了一个新名称 - example.com。然后,您在具有 IP 100.0.0.10 的 EC2 计算机中设置您的网站。要将 example.com 指向您的网络服务器,您需要先选择一个 DNS 解析器。 AWS 提供了一个 - Route53。 DNS 解析器将 example.com 之类的名称转换为 100.0.0.10.

之类的 IP 地址

AWS Route53 有一个Hosted Zones 的概念。您需要为 example.com 创建一个托管区域。然后 Route53 会给你 nameservers(一堆不同的 URL,AWS 给你 4 个)。您将获取这些名称服务器并返回到 GoDaddy,其中有一个部分用于放置这些名称服务器。这告诉 GoDaddy where 将请求发送到。

我们为什么要这样做^^^? 当您从 GoDaddy 购买名称时,GoDaddy 成为您的注册商,即它向 DNS 机构注册了您的名称。因此,每当有人向 DNS 机构请求 example.com 时,他们会将请求转发给 GoDaddy。所以 GoDaddy 需要知道将请求发送到哪里。这些名称服务器会告诉 GoDaddy 确切的信息。

请求到达AWS Route53后,知道这个域名example.com需要去100.0.0.10.

What if I create 2 Hosted Zones with the same domain name example.com?

托管区域只不过是 Route53 为域定义一组路由规则的方式。 如果您有 2 个具有相同域名的托管区域,您将有 2 组命名空间。对于 AWS,每组有 4 个命名空间,所以总共有 8 个命名空间)。

所以现在这取决于你给 GoDaddy 的命名空间。您可以给它设置 A,在这种情况下,您的第二个托管区域将不会收到任何流量。您可以给它设置 B,在这种情况下,您的第一个托管区域将不会收到任何流量。或者,您可以混合使用 A 组和 B 组,在这种情况下,GoDaddy 将向 A 组发送一些请求,向 B 组发送一些请求,但不会同时发送这两个请求。