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

我试图从Heroku无缝过渡到AWS。 目前,DNS由Route53处理,CNAMElogging将stream量发送到heroku SSL子域。 我需要将其更改为“别名”logging,指向新的Elastic Load Balancer,而不会造成服务中断。

如果最初的logging是一条Alogging,那么只需要创build别名Alogging,然后删除原始logging,以便始终为给定的子域总是有一个活动的Alogging。 但是,CNAME阻止为同一子域创build任何其他logging,并带有以下消息:

<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> 

如果我在创buildAlogging之前删除了CNAMElogging,那么会出现一个窗口,在此期间,过期的TTL将无法parsing该网站。 我怎样才能避免这种宕机?

看起来你正在使用ChangeResourceRecordSets API调用 。 只需同时发送两个更改:Alogging的CREATE和CNAMElogging的DELETE。

如果这不起作用,大声喊叫亚马逊,直到他们解决它。