AWS Route 53:如何将托pipe区域从一个帐户完全迁移到另一个帐户?

我有两个新旧AWS账户。

我在Route 53服务下的旧帐户上有一个托pipe区域。

我想把它从旧的迁移到新的。

我该怎么做 ? 这种情况下是否有预定义的步骤?

请注意,托pipe区正在现场环境中使用。 我不能冒太多的尝试和错误。

您还可以使用jq (“sed for JSON”)将list-resource-record-sets的JSON输出转换为JSONinput以change-resource-record-sets

 jq '.ResourceRecordSets |{"Changes":[.[] |select(.Type!="SOA") |select(.Type!="NS") |{"Action":"CREATE","ResourceRecordSet":.}]}' 

这假定您已经创build了新的托pipe区域,并且除了从JSON文件中删除的SOANSlogging之外,它是空的。 (换行是为了可读性;删除它们以使用该命令。)

使用AWS CLI这很简单。 首先,获取您的托pipe区域ID:

 $ aws route53 list-hosted-zones { "HostedZones": [ { "ResourceRecordSetCount": 15, "CallerReference": "A5A5A3AF-C239-39FB-DA4C-556BA9FD1767", "Config": {}, "Id": "/hostedzone/Z1LVCQHJBJUCM5", "Name": "example.com." } ] } 

然后导出该托pipe区域的资源列表:

 $ aws route53 list-resource-record-sets --hosted-zone Z1LVCQHJBJUCM5 

这将使用change-resource-record-sets命令输出logging的json blob,这非常接近您需要重新导入新区域的格式。 查看文档,检查list-resource-record-sets的输出格式和change-resource-record-sets的input格式,这将清楚你需要做什么来导入logging。

在新区域中有logging后,请更新您的域名注册商以指向该区域的Route53名称服务器组。

我刚刚为这个问题创build了一个工具。

https://github.com/andersjanmyr/route53copy

$ route53copy Usage: route53copy-linux <source_profile> <dest_profile> <domain>