我正在 Route53 中配置一些域名,正在寻找一些有关设置最佳实践的建议。以下是场景:
假设 domain1.com 是我的主公司域名,并且我还有 domain2.com 和 domain3.com。
假设我有两个 Amazon EC2 实例,定义为 Web 和数据库服务器,弹性 IP 分别为 11.11.11.11 和 22.22.22.22,并且我想在外部这样寻址它们:
prod-web01.domain1.com
prod-db01.domain1.com
让我们进一步假设 domain1.com 的网站托管在上述实例之一上,这意味着我必须将 domain1.com 的 A 记录(对吗?)设置为 Web 实例的弹性 IP。因此,我在 Route53 中创建记录集,如下所示:
domain1.com. A 11.11.11.11
prod-web01.domain1.com. A 11.11.11.11
prod-db02.domain1.com. A 22.22.22.22
www.domain1.com. CNAME prod-web01.domain1.com
现在,domain2.com 和 domain3.com 也都托管在上面的 web01 实例上,因此我为它们创建了记录集,如下所示:
domain2.com. A 11.11.11.11
www.domain2.com. CNAME prod-web01.domain1.com.
和
domain3.com. A 11.11.11.11
www.domain3.com. CNAME prod-web01.domain1.com.
这一切都运行良好,但并不像我希望的那样优雅。我想知道是否有某种方法可以设置这种类型的配置,其中指向直接 IP 地址的记录较少。
我的理解是,我不能将 CNAME 记录用于域的根(对吗?),那么是否有其他方法可以设置,以便我的 DNS 基础架构中每个 IP 只有一个“硬”引用?
如果不是,这看起来像是一个聪明的设置吗?还是一个愚蠢的设置?请随意告诉我我很笨。:)
答案1
首先,如果您只有两个实例(一个 Web 实例和一个 DB 实例),那么您的做法就错了。您应该设置一个弹性负载均衡器,并在其后至少设置两个应用服务器实例。实例可能会(并且确实)不时出现故障。而且您确实应该使用 RDS 作为持久数据存储。
我的理解是,我不能将 CNAME 记录用于域的根(对吗?)
你可以,但是它经常会以意想不到的方式破坏某些东西(尤其是电子邮件),所以不应该这样做。我会这样做:
domain1.com. A 11.11.11.11
prod-web01.domain1.com. A 11.11.11.11
prod-db02.domain1.com. A 22.22.22.22
www.domain1.com. CNAME prod-web01.domain1.com
domain2.com. A 11.11.11.11
www.domain2.com. CNAME domain2.com.
domain3.com. A 11.11.11.11
www.domain3.com. CNAME domain3.com.