【问题标题】:AWS Changing a Cname record to an A record with the cliAWS 使用 cli 将 Cname 记录更改为 A 记录
【发布时间】:2021-10-08 21:06:39
【问题描述】:

我的组织在 route53 中有几个不同的托管区域,其中多个 CNAME 记录解析为我们负载均衡器的 DNS 名称。我希望将这些记录更改为指向我们新奇的全球加速器的 IP 地址。我创建了一个json文件并用cli上传它并收到以下错误:

调用 ChangeResourceRecordSets 操作:[具有 DNS 名称的 A 类型 RRSet Foo.Bar.com。不允许,因为类型的 RRSet 冲突 区域 Bar.com 中已存在具有相同 DNS 名称的 CNAME。,...]

The Troubleshooting guide 我发现状态“只有当您最初有 CNAME 记录并 UPSERT 到另一个 CNAME 记录时,UPSERT 才会成功。”我的下一个想法是创建一个文件来删除 CNAME 记录并在同一更改中创建一个 A 记录(或者甚至将它们背靠背运行),但我担心这可能会造成服务中断。我仍然是管理 AWS 的新手,因此欢迎任何指点。

有没有更好的方法将 CNAME 记录更改为 A 记录?

【问题讨论】:

  • 澄清一下,我们希望将记录指向 IP 地址而不是 DNS 名称的原因是为了避免必须解析第二个名称,这在理论上可能会增加一些延迟。

标签: amazon-web-services amazon-route53


【解决方案1】:

在我看来,这是最安全的方法:

  1. 将所有指向 ELB 的 DNS 名称的 CNAME 记录的 TTL 设置为预计迁移完成的合理值,例如 3600(一小时)。这里的想法是你不希望这个值太低。如果您无法在这段时间内完成迁移(即删除并重新创建 A 记录),用户可能会收到Unable to resolve DNS 错误。

  2. 等待新的 TTL 生效。

  3. 提前准备好 CLI 命令。

    1. 删除所有旧 CNAME 记录的删除命令
    2. 创建用于创建所有新 A 记录的命令,其 TTL 为 300(5 分钟)。
  4. 先执行delete命令,等它们完成,再执行create命令。

  5. 测试您的更改并确保新记录有效。如果它没有按预期工作,请立即调试并更改 DNS,以使系统正常工作。

  6. 将 A 记录的 TTL 增加到更大的值,例如 3600

  7. 为了安全起见,请再等一两天,以防某些解析器不遵守 TTL。同时,保留原始 CNAME 记录指向的旧 ELB。直接监控来自用户的ELB流量。

  8. 当指标告诉您几乎所有流量都来自 GA 时,如果需要,您可以安全地终止 ELB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多