我正在设置应用程序弹性负载均衡器,并将其指向几个 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 别名。
或者我应该做一些完全不同的事情?
答案1
DNS 标准规定您不能在域 Apex 上拥有 CNAME,您需要 A 记录。
有些提供商会让您违反标准执行此操作。CloudFlare 以一种巧妙的方式执行此操作,它似乎允许您在域顶点创建 CNAME,但使用代理系统以符合标准的方式执行此操作 - Michael 在下面对此进行了很好的解释。
最好的选择是使用 AWS Route53 和别名记录。Route53 接管了为域提供 DNS 的工作,您不再需要以前的 DNS 提供商。