Amazon Route 53

Amazon Route 53 是一種可用性高、可擴展性強的雲域名系統 (DNS) Web 服務。它的目的是爲開發人員和企業提供一種非常可靠且經濟高效的方式,把名稱(如 www.example.com)轉換爲計算機用於互相連接的數字 IP 地址(如 192.0.2.1),從而將最終用戶路由到 Internet 應用程序。Amazon Route 53 也與 IPv6 完全兼容。

Amazon Route 53 高效地將用戶請求連接到 AWS 中運行的基礎設施,例如 Amazon EC2 實例、Elastic Load Balancing 負載均衡器或 Amazon S3 存儲桶,還可以將用戶路由到 AWS 外部的基礎設施。 您可以使用 Amazon Route 53 配置 DNS 運行狀況檢查,然後通過 Route 53 應用程序恢復控制器持續地監控應用程序從故障恢復的功能並控制應用程序恢復。

Amazon Route 53 Traffic Flow 讓您可以通過多種路由類型(包括基於延遲的路由、Geo DNS、臨近地理位置路由和加權輪詢)輕鬆管理全球流量,所有的路由類型都可與 DNS 故障轉移進行組合,以實現各種低延遲容錯架構。利用 Amazon Route 53 Traffic Flow 簡單的可視化編輯器,您可以輕鬆管理如何將終端用戶路由到應用程序的終端節點,無論是在單個 AWS 區域還是在分佈於全球的區域都可實現。Amazon Route 53 還提供域名註冊功能,您可以購買和管理域名(例如 example.com),且 Amazon Route 53 將自動爲您的域配置 DNS 設置。

 

 

Amazon Route 53是一種高度可用且可擴展的雲域名系統(DNS)Web服務。可以將域名轉換爲IP地址,目前還完全兼容IPv6。Route 53主要用於以下幾個方面:

1. 域名註冊

2. DNS管理

3. 可用性監控,健康檢查

4. 路由策略,流量管理

Route53 工作流程:

 

 
 

準備數據:

#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
EC2_AVAIL_ZONE=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
echo "<h1>Hello World from $(hostname -f) in AZ $EC2_AVAIL_ZONE </h1>" > /var/www/html/index.html

創建EC2:

創建3個不同區域的EC2,把上面的腳本放到use script裏面,這樣訪問EC2的時候就會顯示EC2的詳細信息。

但是由於賬號的權限問題,沒法實際創建不同區域的EC2 instance,所以這裏假設了3個不同區域的EC2已經被創建好:

39.156.69.79 us-east-1

40.156.69.79 ap-southeast-2

41.156.69.79 eu-west-3

DNS記錄類型:

- SOA - Start of Authority授權起始點記錄會提供有關域和相應Amazon Route53託管區域的信息。記錄了關於該域名的很多信息。

- NS -- Name Server

- A -- Address直接將域名轉換爲IPv4地址。例如www.baidu.com -> 61.135.169.121

- AAAA -- IPv6地址。例如2001:0db8:85a3:0:0:8a2e:0370:7334

- CNAME -- Canonical Name。

- Alias -- 別名記錄

- CAA -- 認證機構授權

- MX -- 郵件交換記錄

- NAPTR -- 命名授權指針記錄

- NS -- 名稱服務器記錄

- PTR -- 指針記錄

- SPF --  發件人策略框架

- TXT -- 文本記錄

在AWS裏常用的是:

A,AAAA,CNAME,Alias

CNAME和Alias

- CNAME -- 可以將一個域名轉向另一個域名。例如www.baidu.com -> www.google.com。

- DNS協議不允許爲DNS命名空間的頂端節點創建CNAME,例如創建了example.com,則不能爲example.com創建記錄,但是可以爲其子域創建CNAME記錄。即只能給非根域名使用。

- Alias -- 和CNAME類似,又叫別名記錄,可以將一個域名指向AWS資源。例如www.baidu.com -> blabla.amazonaws.com。它是可以給根域名和非根域名使用。它是免費的,而且可以做本地健康檢查。

NS

- 可幫助將域名轉換爲計算機用於彼此相互通信的 IP 地址

- NS記錄會標識託管區域的名稱服務器

- 在託管區域裏創建的時候,Route53會自動創建名稱相同的NS記錄。列出的四個NS是託管區域的權威名稱服務器。非特殊情況,不要添加,刪除或更新名稱服務器

- NS記錄的最常見用途是控制域的Internet流量路由方式。

- 可以爲子域(acme.example.com)創建單獨的託管區域,並使用該託管區域爲子域及其子域(subdomain.acme.example.com)路由internet流量。可以通過在根域的託管區域(example.com)中創建另一個NS記錄來設置此配置。 

- 使用NS記錄配置白標籤名稱服務器 -> 希望名稱服務器的域名與託管區域的域名相同的時候。例如ns-2048.awsdns-64.com -> ns1.example.com

CAA

指定允許哪些證書頒發機構(CA)爲域或子域頒發證書。創建CAA記錄有助於防止錯誤的CA爲您的域頒發證書。但是不能替代CA指定的安全要求,例如驗證您是域所有者的要求。可以指定以下內容:

- 哪些CA可以簽發SSL/TLS證書

- CA爲域或子域簽發證書時要聯繫的電子郵件或URL

MX

- 指定郵件服務器的名稱,如果有多個的話,還可以指定優先級。MX記錄的值都包含兩個值,即優先級和域名。

PTR

- PTR 記錄將 IP 地址映射到相應的域名。

SRV

- SRV 記錄 Value 元素包含四個以空格分隔的值。前三個值爲分別是表示優先級、權重和端口的十進制數。第四個值爲一個域名。

路由策略

 
 

1. Simple Routing Policy

- 一個域名對應一個URL

- 當需要轉向到一個單獨的資源時候使用

- 不能綁定健康檢查

- 如果返回多個值,由客戶端隨機選擇一個

 
Create Simple Record
 
Create Simple Record - fill out title and IP of EC2
 
Create Simple Record - Summary page
 
Create Simple Record - Hosted zong details

此時打開terminal,輸入dig simple.biao.com就會發現類似如下圖的信息,上面就會顯示TTL時間和對應的IP。TTL是存活期,會在設置的時間內緩存DNS記錄。在每次dig的時候,會發現這個時間是不斷的減少的,然後重新開始計算。

 
check this domain name

2. Weighted Routing Policy

- 根據終端的百分比來決定到instance的請求

- 當測試新的app的時候,把1%的流量轉過去,可以很方便的測試

- 有助於分割流量到2個不同的區域

- 可以關聯健康檢查

如下圖創建weight策略的記錄,目前是可以同時創建多個記錄。weight的最大值是200。健康檢查是可選的。

 
 
 
 
 
 
 
 

3. Latency Routing Policy - 延遲

- 從延遲最低的AWS區域處理用戶請求

- 在優先考慮用戶延遲時非常有用

- 根據用戶設計的AWS區域評估延遲

如下圖配置後,例如當前請求來自澳洲,那麼就會選擇延遲最小的40.156.69.79 ap-southeast-2來響應,此時切換VPN到US,就會發現會選擇這個時候延遲最小的39.156.69.79 vs-east-1來響應。

 
 
 
 
 
 

健康檢查

 
 

- 有18%及以下運行狀況檢查程序報告終端節點運行狀態良好,則認爲運行狀況不良

- 有超過18%運行狀況檢查程序報告終端節點運行狀態良好,則認爲運行狀況良好

- 選擇 18% 的值是爲了確保位於多個區域的運行狀況檢查程序認爲終端節點運行狀況良好。這可以防止終端節點僅因爲網絡條件問題導致與部分運行狀況檢查位置隔離而被視爲運行狀況不佳。在未來的版本中,這個值可能會更改。

- 默認的健康檢查是30秒,可以設置,但是時間越短花費越高。但是無論設置30秒或者10秒,都是有可能遇到有時每秒收到多個請求,接下來多少秒根本沒有任何運行狀況檢查請求的情況。

- 主要通過兩點來檢查:響應時間,失敗閾值

- 大概15個health checkers進行endpoint的檢查

- 默認的檢查失敗的數量是3個

- 平均每2分鐘一個請求

- 可以檢查HTTP,TCP和HTTPS,但是注意這裏不會檢查SSL/TLS證書

- 和CloudWatch集成

- 不帶運行狀況檢查的記錄始終是運行狀況良好的記錄

- 如果沒有運行狀況良好的記錄,則認爲所有記錄均爲運行狀況良好

- 權重爲 0 的加權記錄 - 按照有權重情況來進行

如下圖所示,有三種內容可以監控:

1. 指定資源(如Web服務器)的運行狀況

2. 其他運行狀況檢查的狀態

3. Amazon CloudWatch警報的狀態

 
 

4. Geo Location Routing Policy

- 基於用戶的位置

- 要有一個默認的,如果匹配不上的話

如下圖配置後,會根據用戶發請求所在的區域來響應請求,例如給英國配置的是39.156.69.79 us-east-1,那麼請求從英國來的都會用這個記錄來響應,如果給香港配置的是40.156.69.79 ap-southeast-2,那麼請求從香港來的會用40這個記錄來響應,而加拿大來的請求就會訪問默認的41.156.69.79 eu-west-3

 
 
 
 
 
 
 
 

5. Failover Routing Policy

- 只有一個primary和secondary的節點,只有當primary的health check是unhealthy的時候,流量纔會轉向到secondary

如下圖,配置了primary節點爲39.156.69.56. eu-east-1,並且有對應的health check,如果它的狀態一直是healthy,那麼每次請求都是響應的primary節點,直到它的狀態變成unhealthy,纔會轉向到secondary節點。這裏可以通過關閉39.156.69.79,讓其狀態變成unhealthy來測試結果。

 
 
 
 
 
 

6. Multi Value Answer Routing Policy

- 當流量到多個資源的時候使用,即返回多個值來響應DNS請求

- 最多8條記錄響應請求

- 因爲可以具備同時健康檢查每個資源的運行狀況,可以與DNS配合使用,來提高可用性和負載均衡性

- 但是它不可替代負載均衡器(ELB)

當一個請求進來,可以隨機從8條記錄裏響應,下面的圖裏面配置了3條記錄,那麼在TTL的過期後,再次請求就有可能會選擇另外一個記錄響應。

例如,第一次請求進來選擇的是39.156.69.79 us-east-1,TTL是60,那麼TTL時間過期後,再次進來可能選擇的就是40.156.69.79 ap-southeast-2

 
 
 
 
 
 
 
 
 
 

日誌

- 可以記錄關於公共DNS查詢的信息,例如:已請求的域或子域,請求的日期和時間,DNS記錄類型,對請求響應的Route53邊緣站點,響應代碼等等

- 只能記錄public的hosted zone

- 日誌裏包含的信息:version,account_id,region,vpc_id,query_timestamp,query_name,query_type,query_class,rcode,answer_type,rdata,answer_class,srcaddr等等

- 和CloudWatch集成

- 和CloudTrail集成



參考:AWS Route 53
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章