本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将托管区迁移到其它 AWS 账户
在将托管区迁移到其他 AWS 账户 时,请执行以下建议的步骤。
这些步骤最适合记录更改频率较低的托管区。对于记录频繁更新的托管区,请考虑以下事项:
迁移期间不要更新任何资源记录。
转移委托后,在旧托管区和新托管区中发布资源记录更改。
先决条件
安装或升级 AWS CLI:
有关下载、安装和配置 AWS CLI 的信息,请参阅 AWS Command Line Interface 用户指南。
注意
配置 CLI,以便您能在同时使用创建了托管区域的账户和要将托管区域迁移到的账户时使用它。有关更多信息,请参阅 AWS Command Line Interface 用户指南中的配置 。
如果您已在使用 AWS CLI,建议您升级到最新版本的 CLI,以便 CLI 命令能够支持最新的 Route 53 功能。
主题
步骤 1:准备迁移
准备步骤可帮助您最大限度地降低与迁移托管区相关的风险。
1. 监控区域可用性
您可以监控区域以了解域名的可用性。这可以帮助您解决可能导致回滚迁移的任何问题。您可以使用 CloudWatch 或查询日志记录来监控流量最多的域名。有关设置查询日志记录的更多信息,请参阅 监控 Amazon Route 53。
可以通过 Shell 脚本或第三方服务来完成监控。但是,其不应作为确定是否需要回滚的唯一信号,因为由于域不可用,您也可能会从客户处获得反馈。
2. 降低 TTL 设置值
记录的 TTL(生存时间)设置指定您希望 DNS 解析程序缓存记录和使用缓存信息的时间。当 TTL 过期时,解析程序会向域的 DNS 服务提供商发送另一个查询以获取最新信息。
NS 记录的典型 TTL 设置为 172800 秒或两天。NS 记录列出了域名系统 (DNS) 可用来获取有关如何路由域流量的信息的名称服务器。通过为当前 DNS 服务提供商和 Route 53 减小 NS 记录的 TTL,可在您将 DNS 迁移至 Route 53 的过程中发现问题时缩短域的停机时间。如果您不减小 TTL,则您的域可能会在出现问题时最多两天内在 Internet 上不可用。
降低 TTL
请登录 AWS 管理控制台,并通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/
。 在导航窗格中选择托管区。
选择托管区域的名称。
选择 NS 记录,然后在记录详细信息窗格中选择编辑记录。
更改 TTL(秒)的值。我们建议您指定一个介于 60 秒和 900 秒 (15 分钟) 之间的值。
选择保存。
3. 从父区域中移除 DS 记录(如果您已配置 DNSSEC)
如果已为域配置 DNSSEC,请在将域迁移到 Route 53 之前从父区域中删除 Delegation Signer (DS) 记录。
如果父区域通过 Route 53 进行托管,请参阅 删除域的公有密钥 以获取更多信息。如果父区域在另一个注册商处进行托管,请联系他们移除 DS 记录。
Route 53 目前不支持迁移 DNSSEC 设置。因此,您需要通过从父区域中移除 DS 记录来禁用在迁移之前对您的域执行的 DNSSEC 验证。迁移完成后,您可以通过在新托管区上配置 DNSSEC 并将相应 DS 记录添加到父区域来重新启用 DNSSEC 验证。
4. 确保没有其他依赖迁移托管区的持续操作
某些操作将依赖于迁移托管区中的 DNS 解析,例如,TLS/SSL 证书续订过程可能需要更改 DNS 记录,而提供商会尝试将 DNS 记录解析为验证方法。在迁移之前,应确保没有其他操作发生,以避免托管区迁移造成意外影响。
步骤 2:创建新的托管区
在要将托管区迁移到的目标账户中创建新的托管区。
选择相应选项卡,查看 AWS CLI 或控制台的说明。
步骤 3:(可选)迁移运行状况检查
您可以将新账户中的 DNS 记录与要从中迁移的账户中的 Route 53 运行状况检查相关联。要迁移 Route 53 运行状况检查,您需要使用与现有账户相同的配置,在新账户中创建新的运行状况检查。有关更多信息,请参阅 创建 Amazon Route 53 运行状况检查 。
步骤 4:将记录从旧托管区迁移到新的托管区
您可以使用控制台或 AWS CLI,将记录从 AWS 账户 迁移到另一个。
步骤 5:比较新托管区域和旧托管区域中的记录
要确认您已在新托管区中成功创建所有记录,请输入如下 CLI 命令以列出新托管区中的记录,并将输出与旧托管区中的记录列表进行比较。
aws route53 list-resource-record-sets \ --hosted-zone-idnew-hosted-zone-id\ --output json >path-to-output-file
指定以下值:
对于
,指定新托管区的 ID。new-hosted-zone-id对于
,指定要在其中保存输出的目录路径和文件名。使用与您在步骤 4 中使用的不同文件名。path-to-output-file>字符将输出发送到指定文件。
将此输出与来自步骤 4 的输出进行比较。除了 NS 和 SOA 记录的值以及您在步骤 4 中所做的任何更改 (如不同的托管区 ID 或域名),两个输出应相同。
如果新托管区中的记录与旧托管区中的记录不匹配,执行下列操作之一:
使用 Route 53 控制台进行少量纠正。有关更多信息,请参阅 编辑记录。
从新托管区中删除 NS 和 SOA 记录之外的所有记录,然后重复步骤 4 中的过程。
步骤 6:将域注册更新为使用新托管区域的名称服务器
完成将记录迁移到新托管区之后,将域注册的名称服务器更改为使用新托管区的名称服务器。有关更多信息,请参阅将 Amazon Route 53 作为现有域的 DNS 服务。
如果您的托管区正在使用中(例如,如果您的用户正在使用该域名浏览网站或访问 Web 应用程序),则应继续监控托管区的流量和可用性,包括网站或应用程序流量、电子邮件等。
如果流量慢或停止 - 请将域注册的名称服务改回旧托管区中的名称服务器。然后,确定出错的位置。
如果流量未受影响 - 继续至下一步。
步骤 7:将 NS 记录的 TTL 重新改为更高的值
在新托管区中,将 NS 记录对应的 TTL 更改为更典型的值,例如,172800 秒 (两天)。这减少用户的延迟,因为他们不必像 DNS 解析程序一样通常需要等待为您的域的名称服务器发送查询。
更改 TTL
请登录 AWS 管理控制台,并通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/
。 在导航窗格中选择托管区。
选择托管区域的名称。
选择 NS 记录,然后在记录详细信息窗格中选择编辑记录。
将 TTL(秒)的值更改为您希望 DNS 解析程序缓存您的域的名称服务器的名称的秒数。我们建议的值为 172800 秒。
选择保存。
步骤 8:重新启用 DNSSEC 签名并建立信任链(如果需要)
您可以通过两个步骤重新启用 DNSSEC 签名:
为 Route 53 启用 DNSSEC 签名,并请求 Route 53 根据客户托管密钥在 AWS Key Management Service 中创建密钥签名密钥(KSK)。
通过向父区域添加 Delegation Signer(DS)记录,为托管区创建信任链,以便使用受信任的加密签名对 DNS 响应进行身份验证。
有关说明,请参阅启用 DNSSEC 签名并建立信任链。。
步骤 9:(可选)删除旧托管区域
如果您确信您不再需要旧托管区域,则可选择将其删除。有关说明,请参阅删除公有托管区域。
重要
在将域注册更新为使用新托管区域的名称服务器后的至少 48 小时内,不要删除旧托管区域或该托管区域中的任何记录。如果在 DNS 解析程序停止使用旧托管区域中的记录之前删除该托管区域,则在解析程序开始使用新托管区域之前,您的域在 Internet 上不可用。