之前有寫過一篇「AWS 用 Unbound 解析 Private DNS」來談怎麼在 AWS 達到 Hybrid Cloud Private DNS 的解析,之後在 2018 年 re:Invent 發表了「Amazon Route 53 DNS Resolver」和「Resource Access Manager」這兩個服務。
Route 53 DNS Resolver 用來解決 Hybrid Cloud 不同 DNS Source 的問題
Route 53 DNS Resolver 徹底解決了 Private DNS, AWS DNS, Public DNS 三種類型的查詢同步,只是之前都必須使用 DNS Resolver Instance 來解決這個問題
Route 53 DNS Resolver 的運作方式是在 VPC 內的兩個 AZ 各建立一個 ENI (Elastic Network Interface) 進行轉發(forward) 或是覆寫(設定參數為 System) DNS,然而又分為 inbound 跟 outbound 各需要一組 ENI:
- inbound:需要 2 張 ENI 分佈在 2 個不同 AZ
- outbound:需要 2 張 ENI 分佈在 2 個不同 AZ
一張 ENI 費用 US 0.125/小時
Multi-Account 情境搭配 Resource Access Manager 組合技
在 Multi-Account 的情境下,由於 DNS Resolver rule 只生效於 Attach VPC 內的網路,當遇到跨 VPC 的時候就沒用了,對於管理上仍是不好處理。
Resource Access Manager 提供簡單的 Sharing Resource 功能,其中一項就是 DNS Resolver rule,只要指定 AccounId 就可以從一個帳號控管 DNS Rule,算是對於管理的一個解套方式。
Route 53 DNS Resolver vs. Resolver instance
前面有提到 Route 53 DNS Resolver 不能跨 VPC 使用,只有 DNS Rule 能用 RAM 共享,而 ENI 不行,舉例:
- A 帳號建立一組 DNS Resolver 利用 RAM 分享給 B, C, D … Z 帳號
使用 inbound + outbound 共計 4 張 ENI,每個月 $372 鎂 (0.125*4*24*31)
- B, C, D … Z 帳號各需要一組 DNS Resolver
與 A 帳號相同,毎月有 $372 鎂低消,但 DNS rule 由 A 帳號控管
以上費用未含 DNS Query 次數、網路費用。
以費用來看,低消一個月就要花 $372 鎂,如果是以 Resolver instance 來建立,拿 t3.nano 2 台應付就很夠大約 10 鎂,再好一點加一台 NLB 頂在前面 EC2 Autoscaling 也可以有很好的 SLA。
所以該用 EC2 建立 DNS Resolver instance 還是改用 Route 53 DNS Resolver?
如果有成本考量,不建議使用 Route 53 DNS Resolver。
荷包夠選 Route 53 DNS Resolver 更輕鬆管理。