Google Cloud DNS 優點與缺點評析,網站主需要自架DNS嗎?

最近看到有網站主使用Google Cloud Platform(簡稱GCP)底下的Cloud DNS服務,讓筆者非常好奇為什麼他要特別要自行架設、管理DNS,畢竟除了爽度外,自幹優點不一定能蓋過缺點。

DNS提供的服務就是所謂的名稱伺服器(Domain name server),負責解析網域名稱和網路位址之間如何對應,由提供商業服務的網路服務商(例如:GoDaddyNameCheap)內建管理,也可以選擇自行架設DNS域名服務器。

一般來說只有大型企業或學術機構在架構基礎網路設施時才需要自架DNS域名解析服務器,雖然會提高營運成本,例如DNS的ddos 攻擊就需要特別處理以避免網路崩潰,導致網站故障發生404障礙而被搜尋引擎降權,不過自架站的管理上較為方便,也能因應需求(例如百萬級網站)追求最高的規格性能、穩定性和安全性。

但是一般網站主有需要自架DNS名稱伺服器嗎?

這個答案是否定的。

以前要架設DNS至少需要兩台電腦主機,每台主機要有各自獨立的網路位址(簡稱網址,Internet protocol address,簡稱 IP address),而且他們的功能就只有單純解析網域名稱(簡稱域名)使用,還不能拿來架設管理網頁伺服器或資料庫,更別提還得擔心受怕被駭客劫持綁架全企業事業的網路服務,這樣聽下來是不是覺得有點莫名其妙?不過自架DNS對於大型網絡系統來說還是有其必要性存在。

因此後來出現Cloud DNS,就是將需要的硬體和網路環境全部轉移到雲端,我們只需要在Cloud DNS服務進行設定即可,可大幅降低成本,而且擁有擴充彈性,也符合世界等級的安全規範。雖然入門簡單很多了,但問題還是一樣存在,為什麼要自己搞DNS?

以很多人使用的GoDaddy內建DNS伺服器來看,連續的正常運營時間(Uptime)[1]可達到99.98%,卻也代表還有0.02%的時間處於非正常運營。而NameCheap更是只有99.9%,等於每60秒就會有0.6秒出現錯誤。

即便是專注在反向代理的內容傳遞網路(Content Delivery Network,簡稱CDN)而聞名全球的Cloudflare,他們DNS的正常運營時間也只有達到99.99%(算是非常高了)。

雖然看似超微小的錯誤率,一旦成為全球規模,對於一個動輒上萬人甚至數十萬人上線的大型網站來說,那出錯率就會更加擴大了。因此對於大型企業來說,他們需要的是100%穩定的環境。

除了內部花大錢砸出硬體資源和人才外,號稱擁有高SLA的GCP Cloud DNS(或是Amazon的AWS Route 53等高階名稱伺服器服務),就成爲許多網路工程師和新創團隊在開發網路時的首選。

「服務層級協定」(Service Level Agreement,SLA),是服務提供商與客戶之間可定義的正式承諾。服務提供商與受服務用戶之間具體達成了承諾的服務指標——品質、可用性,責任,提供用戶快速評選供應商的標準作法。

計算方式:服務層級 = uptime(小時)/ 一定期間(月/年)* 100%。

不過有網站主可能會以為Google或Amazon可提供100%的SLA,這其實是一個誤解,正確說法是沒有達到100% SLA的話可以申請賠償。即使是強大的Google Cloud Platform 的連續性正常營運時間(uptimes)其實也只達到99.91%而已。

由此可知,無法自架DNS名稱伺服器,好歹也有價格不貴、具彈性和安全性的CloudDNS可以選擇,但是筆者為何會在先前說不需要自架DNS名稱伺服器,也無需使用Cloud DNS呢?

因為對於一般網站主來說根本用不到。

很常見的一個論點是DNS服務商被攻擊或是硬體故障,會替網站業務帶來嚴重影響。嘛,如果這類大型服務商都沒辦法保護,你怎麼會以為自架站就能安全?

就算為了追求最好的品質、尺度彈性和安全性而使用Cloud DNS,實際上無論是Google Cloud DNS還是Amazon的AWS Route 53,他們一樣也只是更大型(甚至還不比其他老牌專業)的服務供應商而已,也會被攻擊崩潰或是出現臭蟲障礙。

因此最簡單的方式就是找到一家域名註冊服務供應商(例如:GoDaddyNameCheap),然後利用他們家的預設DNS名稱伺服器來做網域定址服務即可,至於0.01%的主機離線狀態就當是考驗人品吧。

參考文獻

  1. DNS Performance Analytics and Comparison.
  2. Cloud DNS Service Level Agreement (SLA)
  3. Google Domains 新網站域名的搜尋、註冊與管理服務(Beta 嘗鮮)

分享您的想法

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *