使用 AWS 的 Route53 切换 CNAME 时避免停机

使用 AWS 的 Route53 切换 CNAME 时避免停机

我正在尝试从 Heroku 无缝过渡到 AWS。目前,DNS 由 Route53 处理,CNAME 记录将流量发送到 heroku SSL 子域。我需要将其更改为 A Alias 记录,指向新的 Elastic Load Balancer,而不会中断服务。

如果初始记录是 A 记录,则只需创建别名 A 记录,然后删除原始记录,这样给定子域始终会有一个活动的 A 记录。但是,CNAME 会阻止为同一子域创建任何其他记录,并显示以下消息:

<Error><Type>Sender</Type>
<Code>InvalidChangeBatch</Code>
<Message>RRSet of type A with DNS name www.example.com. is not permitted because a conflicting RRSet of type  CNAME with the same DNS name already exists in zone example.com.</Message></Error>

如果我在创建 A 记录之前删除 CNAME 记录,那么将有一个窗口,在此期间过期的 TTL 将无法解析网站。我该如何避免这种停机?

答案1

看来您正在使用ChangeResourceRecordSets API 调用。只需同时发送两个更改:针对 A 记录发送 CREATE,针对 CNAME 记录发送 DELETE。

如果这不起作用,就向亚马逊大喊,直到他们解决问题。

相关内容