AWS 使用 cli 将 Cname 记录更改为 A 记录
AWS Changing a Cname record to an A record with the cli
我的组织在 route53 中有几个不同的托管区域,其中有多个 CNAME 记录解析为我们的负载均衡器的 DNS 名称。我希望更改这些记录以指向我们新奇的全球加速器的 IP 地址。我创建了一个 json 文件并使用 cli 上传它并收到以下错误:
An error occurred (InvalidChangeBatch) when calling the
ChangeResourceRecordSets operation: [RRSet of type A with DNS name
Foo.Bar.com. is not permitted because a conflicting RRSet of type
CNAME with the same DNS name already exists in zone Bar.com., ...]
The Troubleshooting guide 我发现“仅当您最初有一个 CNAME 记录并且 UPSERT 到另一个 CNAME 记录时,UPSERT 才会成功。”我的下一个想法是创建一个文件来删除 CNAME 记录并在同一更改中创建一个 A 记录(或者 运行 它们背靠背,甚至),但我担心这可能会造成服务中断。我对管理 AWS 还是个新手,所以欢迎任何指点。
有没有更好的办法把CNAME记录改成A记录?
在我看来,这是最安全的方法:
将所有指向ELB DNS名称的CNAME记录的TTL设置为一个合理的值,预计迁移完成,例如3600
(一小时)。这里的想法是您不希望此值太低。如果您无法在这段时间内完成迁移(即删除并重新创建 A 记录),用户可能会收到 Unable to resolve DNS
错误。
等待新的TTL生效。
提前准备好 CLI 命令。
- 删除所有旧 CNAME 记录的命令
- 创建命令以创建 TTL 为
300
(5 分钟)的所有新 A 记录。
先执行删除命令,等待完成,再执行创建命令。
测试您的更改并确保新记录有效。如果它没有按预期工作,请立即调试并更改 DNS 以确保系统正常工作。
将 A 记录的 TTL 增加到更大的值,例如 3600
。
再等一两天以防万一某些解析器不遵守 TTL。同时,保留原始 CNAME 记录指向的旧 ELB。监控直接来自用户的ELB流量
当指标告诉您几乎所有流量都来自 GA 时,您可以在需要时安全地终止 ELB。
我的组织在 route53 中有几个不同的托管区域,其中有多个 CNAME 记录解析为我们的负载均衡器的 DNS 名称。我希望更改这些记录以指向我们新奇的全球加速器的 IP 地址。我创建了一个 json 文件并使用 cli 上传它并收到以下错误:
An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: [RRSet of type A with DNS name Foo.Bar.com. is not permitted because a conflicting RRSet of type CNAME with the same DNS name already exists in zone Bar.com., ...]
The Troubleshooting guide 我发现“仅当您最初有一个 CNAME 记录并且 UPSERT 到另一个 CNAME 记录时,UPSERT 才会成功。”我的下一个想法是创建一个文件来删除 CNAME 记录并在同一更改中创建一个 A 记录(或者 运行 它们背靠背,甚至),但我担心这可能会造成服务中断。我对管理 AWS 还是个新手,所以欢迎任何指点。
有没有更好的办法把CNAME记录改成A记录?
在我看来,这是最安全的方法:
将所有指向ELB DNS名称的CNAME记录的TTL设置为一个合理的值,预计迁移完成,例如
3600
(一小时)。这里的想法是您不希望此值太低。如果您无法在这段时间内完成迁移(即删除并重新创建 A 记录),用户可能会收到Unable to resolve DNS
错误。等待新的TTL生效。
提前准备好 CLI 命令。
- 删除所有旧 CNAME 记录的命令
- 创建命令以创建 TTL 为
300
(5 分钟)的所有新 A 记录。
先执行删除命令,等待完成,再执行创建命令。
测试您的更改并确保新记录有效。如果它没有按预期工作,请立即调试并更改 DNS 以确保系统正常工作。
将 A 记录的 TTL 增加到更大的值,例如
3600
。再等一两天以防万一某些解析器不遵守 TTL。同时,保留原始 CNAME 记录指向的旧 ELB。监控直接来自用户的ELB流量
当指标告诉您几乎所有流量都来自 GA 时,您可以在需要时安全地终止 ELB。