Domain-Name-System

在使用 AWS 的 Route53 切換 CNAME 時避免停機

  • May 28, 2013

我正在嘗試從 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 將無法解析站點。我怎樣才能避免這種停機時間?

看來您正在使用ChangeResourceRecordSets API 呼叫。只需同時發送兩個更改:A 記錄的 CREATE 和 CNAME 記錄的 DELETE。

如果這不起作用,請對亞馬遜大喊大叫,直到他們修復它。

引用自:https://serverfault.com/questions/511455