聊一聊AWS Route 53的托管区

AWS 坑爹啊

最近查看 AWS 的账单才发现,在 route53 买的每个域名每个月都会额外收 0.5 刀,并且还有解析费,一看是因为用了托管区(hosted zone),这个收费是托管区的。

这个托管区的作用其实就是 DNS 管理,emmmmm….那可不得不迁移到赛博大善人 Cloudflare 了。

这里记录一些遇到的问题吧,并把一些概念阐述下。

托管区是个啥

AWS 的托管区(Hosted Zone)是 Amazon Route 53 服务中的一个概念,用于管理域名系统(DNS)记录。Route 53 是 AWS 提供的可扩展的域名系统(DNS)Web 服务,旨在为开发者和企业提供一种可靠且经济高效的方式,将用户请求路由到互联网应用程序。

托管区本质上是一个容器,用于保存特定域名的 DNS 记录。这些记录定义了如何将域名解析为 IP 地址或其他资源。托管区分为两种类型:

  1. 公共托管区(Public Hosted Zone):用于管理公共域名的 DNS 记录,这些域名可以通过互联网访问。例如,如果你有一个网站 example.com,你可以创建一个公共托管区来管理该域名的 DNS 记录,如 A 记录、CNAME 记录等。

  2. 私有托管区(Private Hosted Zone):用于管理私有域名的 DNS 记录,这些域名只能在特定的 VPC(虚拟私有云)内部访问。私有托管区通常用于内部应用程序或服务,这些服务不需要暴露在公共互联网上。

托管区的主要功能

  • DNS 记录管理:托管区允许你添加、编辑和删除 DNS 记录,如 A 记录、CNAME 记录、MX 记录等。
  • 域名解析:托管区中的 DNS 记录用于将域名解析为相应的 IP 地址或其他资源。
  • 流量路由:通过 Route 53 的高级路由策略(如加权路由、延迟路由、地理位置路由等),你可以控制流量如何路由到不同的资源。

使用场景

  • 网站托管:如果你在 AWS 上托管网站,可以使用公共托管区来管理你的域名的 DNS 记录。
  • 内部服务管理:如果你有内部服务或应用程序,可以使用私有托管区来管理这些服务的 DNS 记录,确保它们只能在特定的 VPC 内部访问。
  • 负载均衡和故障转移:通过 Route 53 的高级路由策略,你可以实现负载均衡和故障转移,确保应用程序的高可用性。

上面的是主要概念,简单来说就是管理 DNS 的地方。

托管区和我注册的域名是什么关系

AWS Route 53 提供了两种主要功能:

  • 域名注册:你可以通过 Route 53 注册新的域名(如 example.com)。
  • DNS 托管:你可以使用 Route 53 的托管区来管理域名的 DNS 记录。

这两者是独立的服务,但可以结合使用。

注意这里的独立,这个很重要,这两个功能不是捆绑的,可以不一起用!!!

可以只买域名不用 Route 53 托管吗?

你可以买域名但是不在 Route 53 上托管,可以把域名的 NS 指向 Cloudflare,谷歌 DNS 或者其他提供免费托管的 DNS 服务商,这样就不需要额外的费用了。

为什么托管区可以随便写域名?我没有的域名也能写?

托管区本身并不验证你是否拥有该域名,因此你可以为任何域名创建托管区,即使你没有注册该域名。

这是为什么,那是因为这样搞,AWS 才容易骗到小白的钱(不是

有这么几点原因:

  • 灵活性:AWS 允许你提前配置 DNS 记录,即使域名尚未注册或迁移到 Route 53。例如,你可能计划注册一个新域名,但希望提前设置好 DNS 记录。
  • 测试环境:你可以为不存在的域名创建托管区,用于测试 DNS 配置或开发环境。
  • 域名迁移:如果你计划将域名从其他注册商迁移到 Route 53,可以提前创建托管区并配置 DNS 记录。

总之把域名和托管区联系在一起的就是域名的Name Servers的配置!!!

你可以在已注册域名(registered domain)的详情页看到这个Name Servers,并进行修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
+-------------------------------------+
| 域名注册 (Domain Registration) |
| (可以在 Route 53 或其他注册商注册) |
+-------------------------------------+
|
| 注册域名后,设置 Name Servers
v
+-------------------------------+
| 托管区 (Hosted Zone) |
| (管理 DNS 记录,如 A、CNAME 等) |
+-------------------------------+
|
| DNS 记录指向
v
+------------------------------------+
| 目标资源 (Target Resources) |
| (如 EC2 实例、S3 存储桶、负载均衡器等)|
+------------------------------------+

Route 53 的托管区坑爹的点

AWS 对每个托管区按月收费(公共托管区和私有托管区都收费),每个 0.5 刀。如果不小心创建了多个托管区,费用可能会迅速增加。

其次,如果你域名不想要了没有续费,但是忘记主动删除托管区,托管区会一直存在扣你的钱,所以一定要记得记得删除!!!!

如何迁移托管区到其他服务

上面提到了注册的域名和托管区是相互独立的,删除托管区不会影响你已购期间的域名归属,同理,域名过期/更换 NS 也不影响托管区的存在。

但毕竟托管区是按月收费,换一家免费且更安全,功能更强大的 DNS 服务商还是很有必要的,比如赛博大善人 Cloudflare。

按照 Cloudflare 的文档先设置好域名,接着按给的配置项在 Route 53 的已注册域的详情里修改即可

这里要注意的是,不要去修改托管区里的 NS,改托管区里的 NS 配置是没用的,要修改注册域里的名称服务器!!!

配置之后等 Cloudflare 上网站状态变为 active/活跃即可,注意这时候访问可能会有短暂的ERR_SSL_VERSION_OR_CIPHER_MISMATCH,过一会儿即可,如果遇到了重定向循环需要修改一下加密模式,在 Cloudflare 的Troubleshooting里都有提到。

等一切测试完成,没有问题之后,记得一定要删除托管区里的记录!!!不然等于白干,干了一堆钱还照扣。

最后

不得不吐槽一下 AWS 的坑爹。

1. 文档过多且复杂

  • AWS 的文档虽然全面,但内容过于冗长,新手用户很容易迷失在大量的技术细节中。
  • 比如,光是 Route 53 的文档就有几十页,想要快速找到某个功能的配置方法,简直像在迷宫里找出口。

2. 收费点太多

  • AWS 的收费点无处不在,托管区按月收费、DNS 查询按次数收费、健康检查也要收费……一不小心就会产生额外费用。
  • 比如,托管区即使域名过期了,它还会继续收费,简直是“隐形收费”的典范。

3. 一不小心就扣费

  • AWS 的默认设置往往是“开箱即用”,但这也意味着你可能在不知不觉中开启了收费服务。
  • 比如,创建托管区时,AWS 不会提醒你“这玩意儿是按月收费的”,等你发现账单时,已经晚了。

4. Name Servers 配置容易搞错

  • 修改 Name Servers 时,新手用户很容易搞错地方。比如,修改托管区里的 NS 记录是没用的,必须修改注册域里的 Name Servers。
  • AWS 的界面设计也没有明显的提示,导致很多人踩坑。

希望这篇总结和吐槽对你有帮助!

参考资料

更新名称服务器以使用其他注册商

删除公有托管区域

Cloudflare SSL/TLS Troubleshooting