AWS Route53 簡介 筆記

Route53簡介

Amazon Route 53是一種高可用、高擴展性的雲DNS服務。它爲開發人員和企業提供一種非常可靠和經濟的方法,把對用戶友好的、易讀的域名(比如aws.xiaopeiqing.com)轉換爲IP地址(例如120.79.65.207)。目前Amazon Route53已經支持IPv6。

在我們更加深入瞭解Route53之前,首先讓我們先來看一下什麼是DNS。

DNS在這裏面就起到了翻譯的功能,保證我們通過易讀的名字能訪問到IP地址和後臺的真實服務器。

我們比較常訪問的網站,都會使用到頂級域名,頂級域名包含了下面這些例子:

  • .com
  • .net
  • .cn
  • .edu
  • .gov

這些頂級域名都是被IANA (Internet Assigned Numbers Authority) 這個機構來進行統一的管理和統籌的。

目前,ICANN旗下的InterNIC負責管理和分發所有的互聯網域名,確保互聯網上的域名不會重複。

域名註冊商

我們可以在域名註冊商上註冊新的域名,比如國內的萬網(現在已經被阿里雲收購),新網,國外的Godaddy等。

現在AWS也算是一個域名註冊商,因此我們可以直接在AWS Route53的界面選擇併購買新的域名。

不同的DNS記錄

  • SOA – Start of Authority記錄了關於該域名的很多信息,包括
    • Primary Name Server – 主DNS服務器
    • Responsible Mail Address – 管理員的郵箱地址
    • Serial – SOA記錄數據的版本號,每次DNS記錄更新,版本號都會加1。備用DNS服務器發現版本號不同,會向主DNS服務器同步
    • Refresh – 備用DNS服務器向主DNS服務器檢查更新的時間間隔
    • Retry – 備用DNS服務器向主DNS服務器請求更新失敗後的重試等待時間
    • Expire – 備用DNS服務器在超過該時間後將停止應答該域名的DNS查詢
    • Default TTL – 默認DNS記錄的TTL時間
  • NS – Name Server記錄描述了某個域名所使用的權威的DNS服務器,所有其他DNS服務器進行輪詢查詢的時候最終都需要到這些權威的DNS服務器上進行查詢,獲取最新的記錄
  • A記錄 – A (Address)記錄可以將域名直接轉換爲IPv4的地址,比方說將aws.xiaopeiqing.com轉換爲地址120.79.65.207
  • CNAME – CNAME (Canonical Name)可以將一個域名指向另一個域名。比如將aws.xiaopeiqing.com指向xiaopeiqing.com
  • Alias記錄 – 和CNAME類似,又叫做別名記錄,可以將一個域名指向另一個域名。
    • 和CNAME最大的區別是,Alias可以應用在根域(Zone Apex)。即可以爲xiaopeiqing.com的根域創建Alias記錄,而不能創建CNAME
    • 別名記錄可以節省你的時間,因爲Route53會自動識別別名記錄所指的記錄中的更改。例如,假設example.com的一個別名記錄指向位於lb1-1234.us-east-2.elb.amazonaws.com上的一個ELB負載均衡器。如果該負載均衡器的IP地址發生更改,Route53將在example.com的DNS應答中自動反映這些更改,而無需對包含example.com的記錄的託管區域做出任何更改。
  • TTL – Time to Live時間是DNS記錄在DNS服務器或用戶端上緩存保留的時間,在TTL時間到達之前,DNS記錄將緩存在其他非權威DNS服務器或者用戶主機上
    • (瞭解即可)TTL時間如果設置過短,那麼會增加記錄更新的頻率,同時增加遞歸查詢的時間。即每次到達TTL時間,其他DNS服務器都要再次訪問該域名服務器來更新信息
    • (瞭解即可)TTL時間如果設置過長,那麼在做DNS記錄更新的時候,真實用戶會很長時間之後才能查詢到最新版本的記錄(要等到TTL時間結束)

其他

彈性負載均衡器(ELB)沒有固定的IPv4地址,在使用ELB的時候永遠使用它的DNS名字。很多場景下我們需要綁定DNS記錄到ELB的endpoint地址,而不綁定任何IP

如果出現選擇Alias記錄和CNAME記錄的選擇,95%的情況都要選擇Alias記錄

 

AWS Route53中有多種不同的路由策略(Routing Policy),我們可以根據自己的不同需求將我們的DNS解析到不同的目標上去。

  • 簡單路由策略(Simple Routing Policy):提供單一資源的策略類型,即一個DNS域名指向一個單一目標
  • 加權路由策略(Weighted Rouing Policy):按照不同的權值比例將流量分配到不同的目標上去
  • 延遲路由策略(Latency Routing Policy):根據網絡延遲的不同,將與用戶延遲最小的結果應答給最終用戶
  • 地理位置路由策略(Geolocation Routing Policy):根據用戶所在的地理位置,將不同的目標結果應答給用戶
  • 故障轉移路由策略(Failover Routing Policy):配置主動/被動(Active/Passive)的故障轉移策略,保證DNS解析的容災
  • 多值應答路由策略(Multivalue answer routing policy) – 如果您想要讓 Route 53 用隨機選擇的正常記錄(最多八條)響應 DNS 查詢,則可以使用該策略。可以作爲簡單的LoadBlance

==================================================================

 

簡單路由策略(Simple Routing Policy)

AWS Route 53,我們使用簡單路由策略(Simple Routing Policy)來爲域名創建一個標準的DNS記錄,而不用複雜的例如基於延遲或者權重的方法。一般我們使用簡單路由策略將我們的流量指向單一的資源,例如一臺Web服務器。

在簡單路由策略配置裏面,對於同一個DNS名我們只能創建一條目標,這個目標可能是一組IP地址,或者是一個Alias記錄。

加權路由策略(Weighted Rouing Policy)

使用AWS Route53加權路由策略(Weighted Rouing Policy),我們可以將多個資源關聯到同一個域名(例如aws.xiaopeiqing.com),並根據不同的權值比重將流量分發給不同的資源。

我們可以使用加權路由策略來做負載均衡,或者軟件測試。

比如將5%的流量引導到測試應用上,觀看測試應用的效果。

我們可以爲每一個記錄都分配一個權值,每一條記錄分配到的總流量的比例是權值/所有記錄的權值之合

延遲路由策略(Latency Routing Policy)

AWS Route53的延遲路由策略(Latency Routing Policy)可以讓我們從延遲最低的AWS區域爲用戶處理請求,從而提高性能和速度。

要使用基於延遲的路由策略,我們需要在Route53中創建多條DNS記錄(延遲路由策略類型),並且將它們指向不同區域內的目標。當用戶去訪問這個DNS記錄的時候,會先對不同目標的延遲做比較,並且選擇延遲最低的一個目標進行訪問。

舉個例子,如果我在新加坡區域和首爾區域都有ELB負載均衡器,我需要爲2個ELB都創建延遲路由類型的DNS記錄。

當一個位於中國的用戶訪問這個域名的時候,Route53會查看中國到新加坡區域以及中國到首爾區域之間的延遲,並且使用延遲較低的一個,把其結果反饋給用戶。

如果中國與新加坡之間的延遲較低,那麼用戶最終會訪問新加坡的ELB負載均衡器。

如果中國與首爾之間的延遲較低,那麼用戶最終會訪問首爾的ELB負載均衡器。

故障轉移路由策略(Failover Routing Policy)

故障轉移路由策略(Failover Routing Policy)實際上是創建了DNS記錄的主動/被動(Active/Passive)故障轉移。

在正常的情況下所有的流量應該解析到主的DNS記錄上面。只有當這個主的DNS記錄不健康的時候,Route53纔會自動將所有流量解析到備用的DNS記錄上面。

我們可以對域名開啓健康檢查(Health Check)功能,對域名(服務和端口)的健康狀態進行監控,一旦健康狀態出現問題,Route53就會自動進行切換。

地理位置路由策略(Geolocation Routing Policy)

地理位置路由策略(Geolocation Routing Policy)可以根據用戶所在的位置來返回不同的DNS結果。

比如可以讓位於東京的用戶訪問東京的ELB負載均衡器,位於首爾的用戶訪問首爾的ELB負載均衡器,位於新加坡的用戶也訪問首爾的ELB負載均衡器等。

使用基於地理位置的路由策略,我們可以對內容進行本地化(提供當地的語言和特色);也可以向某些地理位置提供內容服務,而向其他地理位置提供另外的內容服務,甚至不提供服務。

我們可以按大陸(七大洲))、國家/地區來指定地理位置,並且地理區域範圍越精細則優先級越高。

Route53判定地理位置的依據是用戶的源IP地址,有一些IP地址可能無法識別爲具體的地理位置,因此我們最好設置一條默認的匹配規則。在這條默認的匹配規則裏,沒有被任何國家/地區所匹配的位置,還是可以訪問到某個內容

 

多值應答路由策略(Multivalue answer routing policy)

多值應答路由允許您將 Amazon Route 53 配置爲返回多個值 (如您的 Web 服務器的 IP 地址) 來響應 DNS 查詢。您可以爲幾乎任意記錄指定多個值,但多值應答路由也允許您檢查每個資源的運行狀況,以便 Route 53 只返回正常資源的值。雖然它不能替代負載均衡器,但由於其具備返回多個可進行運行狀況檢查的 IP 地址的能力,您可以將它與 DNS 配合使用,以提高可用性和負載均衡性。

要將流量以近乎隨機的方式路由到多個資源(例如 Web 服務器),可以爲每個資源創建一條多值應答記錄,並(可選)將 Route 53 運行狀況檢查關聯至每條記錄。Route 53 通過最多八條正常記錄響應 DNS 查詢,並向不同的 DNS 解析程序提供不同的應答。如果 Web 服務器在解析程序緩存響應後變得不可用,則客戶端軟件可以嘗試響應中提供的其他 IP 地址。

請注意以下幾點:

  • 如果爲多值應答記錄關聯了運行狀況檢查,則 Route 53 僅當運行狀況檢查通過時才向 DNS 查詢返回 IP 地址。

  • 如果您沒有爲多值應答記錄關聯運行狀況檢查,則 Route 53 始終認爲記錄正常。

  • 如果您有不超過八條正常的記錄,Route 53 會向所有 DNS 查詢提供所有正常記錄。

  • 如果所有記錄都不正常,Route 53 會向 DNS 查詢提供最多八條不正常的記錄。

 

 

 

總結

  • 簡單路由策略(Simple Routing Policy):提供單一資源的策略類型,即一個DNS域名指向一個單一目標
  • 加權路由策略(Weighted Rouing Policy):藍綠部署
  • 延遲路由策略(Latency Routing Policy):根據網絡延遲的不同,將與用戶延遲最小的結果應答給最終用戶
  • 地理位置路由策略(Geolocation Routing Policy):根據用戶所在的地理位置,將不同的目標結果應答給用戶
  • 故障轉移路由策略(Failover Routing Policy):配置主/從,對主創建運行狀況檢查,保證DNS解析的容災
  • 多值應答路由策略(Multivalue answer routing policy) – 可以作爲簡單的LoadBlance ,檢查每個資源的運行狀況關聯了運行狀況檢查,以便 Route 53 只返回正常資源的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章