Ada*_*tan 15 domain-name-system alias amazon-cloudfront amazon-web-services amazon-route53
考虑在 AWS Route53 上注册的域。对此域的 HTTP 请求应由 AWS CloudFront CDN 分配提供。为了实现这一点,A
定义了一个别名记录:
dig
结果但是,dig
结果显示的是实际 IP 地址。事实上,这些 IP 地址并不是固定不变的,并且会随着时间而变化:
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION:
serverlessdaystlv.io. 60 IN A 13.32.67.21
serverlessdaystlv.io. 60 IN A 13.32.67.27
serverlessdaystlv.io. 60 IN A 13.32.67.97
serverlessdaystlv.io. 60 IN A 13.32.67.122
serverlessdaystlv.io. 60 IN A 13.32.67.141
serverlessdaystlv.io. 60 IN A 13.32.67.159
serverlessdaystlv.io. 60 IN A 13.32.67.201
serverlessdaystlv.io. 60 IN A 13.32.67.216
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION:
serverlessdaystlv.io. 60 IN A 52.222.232.13
serverlessdaystlv.io. 60 IN A 52.222.232.24
serverlessdaystlv.io. 60 IN A 52.222.232.43
serverlessdaystlv.io. 60 IN A 52.222.232.55
serverlessdaystlv.io. 60 IN A 52.222.232.63
serverlessdaystlv.io. 60 IN A 52.222.232.104
serverlessdaystlv.io. 60 IN A 52.222.232.136
serverlessdaystlv.io. 60 IN A 52.222.232.224
Run Code Online (Sandbox Code Playgroud)
什么是 Route53 别名记录?它是内置类型的 DNS 记录,还是只是 CloudFront 分配的实际 IP 的内部 AWS 别名,永远不会对外公开?
Esa*_*nen 19
Route53别名记录是一个独立于 DNS 协议记录类型的自己的概念:例如,A
是地址记录,CNAME
是规范名称记录。CNAME
是一个充当指向规范名称的别名,而A
与别名无关的别名。(参见RFC 1035。)
一个别名记录是一个内部亚马逊特定指针在更高层次上工作; 在技术 DNS 级别,它可能会导致A
或CNAME
,具体取决于情况。DNS 不需要知道这个内部指针类型或目标,因为 Route53 只回答结果记录。
亚马逊文章在别名和非别名记录之间进行选择详细解释了这一点:
别名记录为 DNS 功能提供了特定于 Route 53 的扩展。别名记录包含指向 CloudFront 分配、Elastic Beanstalk 环境、ELB Classic、应用程序或网络负载均衡器、配置为静态网站的 Amazon S3 存储桶或同一托管区域中的另一个 Route 53 记录。当 Route 53 收到与别名记录中的名称和类型匹配的 DNS 查询时,Route 53 会跟随指针并使用适用的值进行响应:
CloudFront 分配的备用域名– Route 53 的响应就像查询已使用 CloudFront 域名请求 CloudFront 分配一样,例如
d111111abcdef8.cloudfront.net
.Elastic Beanstalk 环境– Route 53 使用环境的一个或多个 IP 地址响应每个请求。
ELB 负载均衡器– Route 53 使用负载均衡器的一个或多个 IP 地址响应每个请求。
配置为静态网站的 Amazon S3 存储桶– Route 53 使用 Amazon S3 存储桶的一个 IP 地址响应每个请求。
同一托管区域中的另一个 Route 53 记录– Route 53 的响应就像查询请求指针引用的记录一样。
这种混淆是可以理解的,因为您似乎添加了A
类型 IPv4地址记录,而目标是主机名而不是 IP 地址;你更愿意用CNAME
!