如何将外部 DNS 与 AWS Elastic Load Balancer 结合使用?

Jon*_*noB 4 domain-name-system amazon-ec2 amazon-web-services amazon-route53 amazon-elb

我正在设置一个应用程序弹性负载均衡器,并将其指向一些 EC2 实例。鉴于我的 DNS 是从 AWS 外部托管的,我现在正在尝试了解如何设置 DNS。

我知道我可以使用我的域的 cname,因此我可以为 www.example.com、foo.example.com(以及任何其他子域.example.com)设置 DNS 记录,并将它们指向我的 ELB类似于 elb-123456789.eu-west-1.elb.amazonaws.com。所以这一切都很好。

但是,对于 apex 记录 (example.com),我无法使用 cname,必须使用 A 记录。据我所知(我可能是错的),我需要使用 Route 53:

  • 为 example.com 创建托管区域
  • 在 example.com 的托管区域内创建一个记录集,类型为alias. 对于别名目标,我从上面选择 ELB
  • 单击“保存”
  • ???

我现在不知道如何将我的域名注册商处的 A 记录指向此 Route 53 别名。

或者我应该做一些完全不同的事情?

Tim*_*Tim 5

DNS 标准规定您不能在 Apex 域拥有 CNAME,您需要 A 记录。

一些提供商会让您按照标准执行此操作。CloudFlare 以一种棘手的方式做到这一点,它似乎让您在域顶端创建 CNAME,但使用代理系统以符合标准的方式进行操作 - Michael 在下面对此进行了详细解释。

最佳选择是使用 AWS Route53 和别名记录。Route53 接管为域提供 DNS 的工作,您不再需要以前的 DNS 提供商。

  • 请注意,Cloudflare 的实现**不**违反标准,因为答案不会作为 CNAME 返回。他们通过后门代理查询真实的 A/AAAA 记录,并返回在收到的响应中找到的任何值。https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-company-support-for-CNAME-at-the-root (2认同)