加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 網管資安
分享到Plurk
分享到FaceBook
 
AWS Route 53(基礎篇)
文‧圖/柳百郁 2014/2/21 上午 10:33:44

無論是否使用AWS那些受歡迎的網路服務,都可以把網域名稱交給AWS管理。網域名稱DNS(Domain Name System)服務在AWS下是由Route 53管理。簡單來說,Route 53把你的網域名稱轉換成IP位址,讓使用者透過AWS遍布全球的網域名稱伺服器進行DNS Query找到你的主機。

AWS Route 53的使用方式可透過Route 53 console也可以用Route 53 API。每個AWS帳號下可以擁有一百個Hosted Zone。Hosted Zone指的是由Route 53所管理的一組資源紀錄集,就像傳統的DNS zone file一樣:hosted zone的一組資源紀錄集管理的就是單一網域名稱,每個hosted zone都有自已的metadata與組態資訊。當你將上層DNS指向AWS Route 53後,就可以在Route 53裡設定你網域名稱下的紀錄,Route 53支援的Record設定包括:
.A:IPv4位址的格式,每個十進位皆以句點隔開,像這樣:192.0.2.1
.AAAA:IPv6位址格式,每個十六進位皆以冒號隔開,像這樣:2001:0db8:85a3:0:0:8a2e:0370:7334
.CNAME:格式與網域名稱相同。最上層的網域名稱不可建立CNAME,而已建立CNAME的子網域名稱也不能再建立任何資源紀錄集。
.MX:MX紀錄含括兩個欄位:以十進位數字表示MX紀錄的優先權,再加上郵件主機的網域名稱,像這樣:10 mail.example.com
.NS:格式與網域名稱相同,是用來設定網域名稱的名稱服務主機。NS與SOA乃構成Hosted Zone的基本要素。Route 53會自動產生四筆NS Record,請不要更動、不要添加任何設定,把上層NS(在你的域名註冊供應商的地方設定)指向這四台。
.PTR:IP位址反解的PTR格式與網域名稱相同。
.SOA:由七個欄位所組成的值。前兩個欄位格式同於網域名稱,用來表示zone的主要權限與zone管理者的聯絡資訊。剩下的五個欄位以十進制數字表示,分別為zone的序列編號、更新時間、重試時間、有效時間與TTL(minimum time to live)。
.SPF:格式與TXT相同,是用來指出相關文件的資訊。
.SRV:以四個以空白隔開的值。前三個十進制數字表示優先權、權重與通訊埠。第四個值為網域名稱。
.TXT:用雙引號框住並以空白隔開的字串。單一字串不可超過255字元。


▲ AWS Management Console下的Route 53初始畫面



實作一:將現有網域移至Route 53

假若你手上已有正在管理中的網域名稱,可以將域名記錄的管理移至AWS Route 53。進一步與你所使用的AWS服務整合。

一、為網域建立hosted zone。
Route 53將你的網域資訊存在hosted zone裡。建立hosted zone時,Route 53會自動產生四筆名稱伺服器(NS)記錄與SOA(start of authority)記錄。你必須把這四筆NS記錄放在你申請網域名稱的單位,這麼一來使用者Qurey時才能路由到Route 53名稱伺服器上。
●步驟一:登入AWS Management Consold開啟Amazon Route 53 console(https://console.aws.amazon.com/route53/)
●步驟二:在Route 53 console的上方,點選Create Hosted Zone。
●步驟三:在右方輸入網域名稱。
●步驟四:完成後點選右下方的Create Hosted Zone鈕確認。

二、從現有DNS服務取得資源紀錄集。
使用者其實可以從網域名稱供應商或DNS服務供應商處取得已存在的紀錄進行資源記錄集移轉。一般來說DNS服務供應商會給你一個zone file,但也有可能是其他型式的資訊,問問看他們能否提供你records list或zone file的資訊。你要移轉的紀錄包括:A record、MX record、CNAME record等。

三、新增資源紀錄集到hosted zone裡。
以現有DNS服務供應商所提供之資源紀錄集作為起點,在Route 53 hosted zone下建立對應紀錄。在Route 53裡建立的資源紀錄,待更新DNS服務的名稱伺服器紀錄後,將成為你DNS所使用的資源紀錄集。
再次提醒:不要動Route 53建立的名稱伺服器(NS)與SOA記錄,不要加新的進去、也不要刪除現有記錄。


▲ 網域名稱建立後自動產生的NS Record,請勿更動。


●步驟一:登入AWS Management Console開啟Amazon Route 53 console。
●步驟二:在Hosted Zone頁面下,點選要建立記錄集的那個hosted zone,然後按下Go to Record Sets(或者直接在你要處理的hosted zone那列點兩下)。
●步驟三:進入Record Sets頁面後,點選左上方的Create Record Set鈕。
●步驟四:於右邊窗格的名稱、型態等資訊中輸入對應值。
●步驟五:完成後點選右下方的Create Record Set鍵。

四、更新你現有的DNS服務的名稱伺服器紀錄,讓它使用Route 53作為hosted zone指定的名稱伺服器。
將Route 53裡的資源記錄集設定完成,使之成為你的DNS伺服器後,就可以更新先前的DNS服務裡的NS記錄,讓它指向Route 53的名稱伺服器。
●步驟一:備份網域的zone file。
●步驟二:將先前DNS服務裡的NS記錄TTL設為900。TTL是用來限制客戶端重試request的時間。你得等上這段時間才能讓客戶端的快取失效,重新找到正確的NS記錄。過了這段時間,便可以刪掉先前存在名稱服務供應商裡的資訊,讓它只用Route 53所提供的。
●步驟三:登錄AWS Management Console後,開啟Amazon Route 53。在Hosted Zone頁點選hosted zone名稱,於右方窗格找到標記為Delegation Set的這四組伺服器。
●步驟四:將先前DNS服務的NS記錄置換成Route 53提供的這四筆名稱伺服器。
等上一段TTL所設定的時間-可能是兩天或更長,讓DNS記錄更新、讓用戶端的快取失效,之後使用者便能向你的Route 53查詢網域相關記錄。

無論你是將現有網域名稱從DNS服務供應商處移至AWS的Route 53,還是自Route 53建立一個新的,當你擁有hosted zone後,便可開始為它新增資源記錄集與其他相關管理操作。以建立記錄為例,在Route 53 Console下,點選要管理的hosted zone後,再點選上方的Create Record Set鍵,便可於右方窗格開始建立新的各種記錄,每一筆完成後,點選右下的Create Record Set鈕確認即可完成。若是變更已存在的記錄,同樣是在hosted zone點兩下後,再選擇左上角的Go to Record Sets,這時主窗格會列出所有記錄,勾選要修改的記錄後,於右方窗格點選編輯(鉛筆小圖示)即可進入編輯模式,完成後點選Save即可。刪除的動作,則同樣於記錄清單中,點選要刪除的記錄,再按上方的Delete Record Set鍵,確認要刪除按下OK鍵即完成。

在Route 53下表列資源記錄集清單,可以有多種顯示上的選擇。例如只顯示192.1的IP位址開頭的記錄,可以在Search後的輸入框中輸入192.0。也可以指定要顯示的記錄型態,例如A record或全部(any type)。此外還可選擇的條件則為僅搜尋別名(Aliases Only)與僅搜尋權重(Weighted Only)。

實作二:建立權重(Weighted)資源記錄集

AWS Route 53提供的一項特殊功能便是設定權重-依重要性選擇回應端點。為資源記錄設定權重,在一些特定狀況下會非常方便,例如你為服務作了負載平衡(Load Balancing)的設計。當你為一組資源記錄集作了相同的名稱與型態設計時,Route 53便會從中選擇一個來回應,在設定權重的情況下,選擇的方式便是看所有相同資源記錄加總所佔的權重設定百分比,假設相同設定有三,權重分別為1、2與3,那麼選擇第二筆記錄的機率為2/(1+2+3)。有了這樣的概念,現在就可以開啟Route 53 Console為記錄進行權重設定。
●步驟一:登入AWS Management Console,並開啟Amazon Route 53 Console
●步驟二:點兩下要編輯的hosted zone
●步驟三:點選Create Record Set。
●步驟四:輸入適當對應值。Name指定要作權重設定的同一群組裡所有的資源記錄集;Type則為權重設定同一群組下所有資源記錄的型態;TTL值為用戶端快取時效,若有整合Health Check(之後會提到),則建議設為60或更短,以便快速更新狀態;Value為與Type對應的值;Routing Policy請點選「Weighted」。權重(Weight)值的設定,則是輸入介於0至255間的整數,要停用該資源,則設為0。Set ID為Name與Type結合後獨一無二的值(可以是一組字串)。若設定與Health Check連結(「Associated with Health Check」設為YES),那麼Route 53會在回應Query前先檢查各端點資源是否Healthy。最後,點選Create Record Set即可完成設定。