0

我們在AWS中有一個站點設置。當我們爲新版本啓用堆棧時,我們會在版本化的URL中提供它。即在AWS DNS/Route 53記錄中使用比較邏輯

V1可在v1.mysite.com

V2提供v2.mysite.com

是否有可能使一個單一的DNS條目將指向自動我的網站的最新部署的版本?所以,當我部署V1,我想有兩個DNS條目:

v1.mysite.com都到了它的IP堆棧

mysite.com其重定向到v1.mysite.com

後來,當我部署V2,mysite.com現在重定向到v2.mysite.com沒有我手動編輯DNS條目。

通常,我是否可以自動創建DNS條目或創建某種通配DNS條目,這些條目將始終指向AWS當前可用的最高編號版本的網站?它應該查看V之後的所有當前可用的DNS條目/堆棧的數字,並使mysite.com指向數字上最高的一個。

我們使用CloudFormation來創建我們的堆棧和我們的DNS(路由53)條目,因此將這些腳本中的任何邏輯都可以工作。

+0

Route53不提供此類功能。你最好的選擇是在部署腳本中包含一些邏輯來更新DNS條目。 –

+0

我最終不得不將其設置爲手動部署步驟。如果新堆棧將成爲通用DNS條目的目標,則用戶必須在部署新堆棧之前刪除現有映射的DNS記錄。然後,如果需要,部署腳本可以創建新的DNS映射。 – twilbrand

回答

0

我們最終必須在部署新堆棧之前進行手動操作。如果新堆棧需要在mysite.com解決,則部署者必須手動移除現有映射。然後,雲形成腳本將創建新的DNS映射。

我不是理想的,但比我認爲的雲形成腳本中的一大堆凌亂的邏輯更好。

0

這不是DNS本身的一部分,所以它不可能被Route53上的任何東西支持。你最好的選擇是當你的新實例啓動或被提升爲生產實例時運行的腳本。這是使用boto很簡單:

  1. 創建一個新的boto.route53.record.Record
  2. 創建一個新的boto.route53.record.ResourceRecordSets
  3. 添加變更記錄與行動UPSERT與您記錄
  4. 提交ResourceRecordSets(在情況下,簡單的重試它失敗)
  5. get_change()直到Route53答覆INSYNC
  6. 根據y我們的應用程序您可能還想等亞馬遜的所有權威DNS服務器(dns.resolver.query('your-domain', 'NS'))知道您的更改。