Amazon ANS-C01: DNS 與 Route 53 — 學習指南

屬於 AWS Advanced Networking Specialty ANS-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.

核心概念

DNS 是將人類易讀的名稱與分散式端點連結起來的黏著劑,但在 AWS 中,它成為一個用於延遲路由、健康感知容錯移轉以及多帳戶私有名稱解析的主動控制平面。Amazon Route 53 透過公有託管區域 (public hosted zones) 支援權威性公有 DNS,並透過私有託管區域 (private hosted zones) 為 VPC 範圍內的解析提供私有 DNS。私有託管區域與一個或多個 VPC 相關聯,並且僅對源自這些 VPC 或透過 Route 53 Resolver 入站端點 (inbound endpoints) 的查詢回傳答案。這種 split-horizon (分裂視界) 行為——根據來源對相同名稱回傳不同答案——讓您能為網際網路用戶端暴露一個公有端點,同時在您的 VPC 內部將相同名稱解析為私有 IP。

Route 53 也將路由決策邏輯和主動健康狀態檢查整合到 DNS 中。路由政策包含 Simple (簡易)、Weighted (加權)、Latency (延遲)、Failover (容錯移轉,主要/次要)、Geolocation (地理位置) 和 Multi-Value Answer (多值答案),以及 Traffic Flow (地理鄰近性和複雜流程)。使用 CreateHealthCheck 建立的健康狀態檢查允許 Route 53 從 DNS 答案中移除不健康的端點,或驅動容錯移轉紀錄集;健康狀態檢查可透過 HealthCheckConfig 欄位進行設定,例如 TypeFullyQualifiedDomainNameIPAddressPortResourcePathRequestIntervalFailureThreshold。由於 DNS 會被解析器和用戶端快取,Route 53 的 TTL 和頻繁的健康狀態檢查輪詢 (在特定設定下最短為 10 秒) 必須與 DNS 的傳播行為取得平衡,以因應容錯移轉和加權路由的變更。

關鍵服務與設定

當暴露 AWS 資源時,應使用 Alias 紀錄 (Alias records) 將 DNS 直接指向支援的 AWS 資源,以避免額外的躍點 (hops) 或 CNAMEs。Alias 紀錄使用一個 AliasTarget,它會參照 AWS 資源的託管區域 ID 和 DNS 名稱 (例如,一個 Elastic Load Balancer、API Gateway 自訂網域、CloudFront 發行版或 S3 網站端點)。建立或變更紀錄是透過 ChangeResourceRecordSets API 完成的;對於程式化的工作流程,請使用帶有 UPSERT/DELETE 操作的 ChangeBatch,並使用 SetIdentifier 來識別路由政策。對於容錯移轉,您需要建立兩筆同名的紀錄,並將 Failover 分別設定為 PRIMARYSECONDARY,每筆紀錄都透過 HealthCheckId 參照一個您用 CreateHealthCheck 建立的健康狀態檢查。

對於跨帳戶和混合式 DNS 解析,Route 53 Resolver 提供了使用 CreateResolverEndpoint 建立的入站 (inbound) 和出站 (outbound) 端點。入站端點允許地端解析器將查詢轉發到 VPC 中 (這對於解析私有託管區域很有用),而出站端點則讓 VPC 資源能將查詢轉發到地端 DNS 伺服器或其他解析器。解析器規則 (Resolver rules,使用 CreateResolverRule 建立) 讓您可以將特定網域的查詢轉發到指定的 IP 位址,並使用 AssociateResolverRule 將規則與 VPC 關聯起來。對於集中式 DNS 架構,您可以在一個中央帳戶中建立轉發規則,並將其與其他帳戶中的 VPC 透過 AssociateResolverRule 關聯,也可以選擇性地使用 AWS Resource Access Manager (RAM) 和 PutResolverRulePolicy 來控制這些關聯。

Route 53 Resolver DNS Firewall 提供基於網域的篩選和日誌記錄功能。您可以使用 CreateFirewallDomainList 建立網域名單,使用 CreateFirewallRuleGroup 建立規則群組,然後將規則群組透過 AssociateFirewallRuleGroup 與 VPC 關聯以強制執行規則。防火牆規則可以 BLOCK (封鎖)、ALLOW (允許) 或 OVERWRITE (覆寫) 回應,並且您可以將評估結果記錄到 CloudWatch Logs 或 S3。使用 CreateFirewallRulePutFirewallRuleGroupPolicy 進行管理並應用具優先級的規則,特別是用於限制透過 DNS 的資料外洩,或封鎖來自 VPC 附加資源的惡意網域存取。

設計模式與權衡

對於高可用性、全球分佈的服務,請使用延遲路由或地理位置路由將用戶端導向至最近的健康端點,並搭配健康狀態檢查來移除不健康的區域性端點。延遲路由取決於 Route 53 的區域延遲表,適用於多區域 active-active (主動-主動) 設計;容錯移轉路由則更適合 active-passive (主動-被動) 的災難復原,在這種情境下,一次只應有一個區域接收流量。加權路由透過為紀錄指派權重值,並使用 ChangeResourceRecordSets 變更這些值,來支援漸進式的流量轉移 (藍綠部署或金絲雀部署)。多值答案路由可以回傳多個 IP 以進行用戶端負載分配,並且需要健康狀態檢查以確保只回傳健康的 IP。

私有託管區域和解析器端點是多帳戶、多 VPC 名稱解析的典型模式。對於擁有多個業務單位的情境,一個託管私有託管區域或解析器端點的中央共享服務 VPC 可以簡化管理:建立一個私有託管區域並使用 AssociateVPCWithHostedZone 來附加服務 VPC,或者運行 Route 53 Resolver 的出站/入站端點和轉發規則,這樣每個帳戶在依賴中央 DNS 政策的同時,仍能保持其 VPC 的隔離性。其權衡之處在於,與許多 VPC 關聯的私有託管區域會使 IAM 和變更控制變得複雜,且跨帳戶的關聯需要一個授權步驟。解析器轉發會帶來中央操作的額外負擔,但它具有擴展性,因為您不需要將每個 VPC 直接與每個託管區域關聯;取而代之的是,您關聯的是解析器規則。

在強制執行嚴格的存取路徑時——例如要求流量只能透過 Global Accelerator 流通——您必須設計安全群組和網路控制來與 DNS 匹配。Route 53 可以透過建立帶有加速器靜態 IP 位址的 A 紀錄,或使用 CNAMEs 指向一個由加速器管理的網域,來指向 Global Accelerator,但強制執行是在 ALB 安全群組和網路 ACL 層級完成的。ALB 安全群組應只允許來自 Global Accelerator 靜態 IP 位址的傳入流量;Global Accelerator 保證這些靜態 IP 將是傳入流量的來源,因此限制傳入流量可以維持「僅能透過加速器存取」的要求。

常見陷阱與決策標準

一個典型的陷阱是假設 Route 53 健康檢查會立即移除端點;DNS 快取 (TTL) 和用戶端解析器的行為意味著容錯移轉並非即時發生。對於關鍵的容錯移轉名稱,應保持較低的 TTL,但請記住,較低的 TTL 會增加查詢量和成本。另一個常見的錯誤是在不了解 VPC 關聯的情況下,在公有和私有託管區域中重複使用相同的名稱:與公有託管區域同名的私有託管區域,將會對源自關聯 VPC 的查詢遮蔽公有的答案,這對於分割視野 DNS (split-horizon) 來說通常是理想的,但如果沒有記錄下來,可能會讓人感到意外。

請謹慎選擇 Alias 和 CNAME 記錄:對於 ELB 和 CloudFront,建議使用 Alias 記錄,因為它們可以避免額外的 DNS 查詢,並且受到 Route 53 變更傳播邏輯的支援,但它們與 AWS 資源的託管區域 ID 綁定,不能用於任意的外部端點。在設計跨帳戶 DNS 時,若考量到規模或管理邊界,應優先選擇解析器規則和端點,而不是將多個 VPC 直接關聯到單一的私有託管區域;解析器規則提供更精細的控制,也更容易使用 CloudTrail 進行稽核。

實務問題:使用案例情境

公司:NimbusPay — 挑戰:為 EKS 後端提供安全的低延遲 gRPC 服務(透過 TLS 與相互 TLS),強制 Web 前端只能透過 Global Accelerator 存取,並允許多個跨帳戶的業務單位 VPC 使用集中式 DNS 控制來取用共用資料服務。

  1. 對於需要端對端 TLS、相互驗證及數千個並行連線的 gRPC 服務,請部署一個 Network Load Balancer (NLB),在其 443 埠上使用 TCP 偵聽器,並將目標類型設為 ip,以便直接註冊 Pod IP。設定 AWS Load Balancer Controller 的註解

undefined

並將目標群組協定設為 TCP;不要在 NLB 終止 TLS(即不使用 TLS 偵聽器),這樣相互 TLS 就能通透傳輸到 Pod 容器中,由容器內的伺服器憑證和用戶端憑證驗證機制來執行。使用指向 NLB 的 Route 53 A 記錄 (Alias),透過

undefined

進行設定;只有在需要快速容錯移轉時才建議使用低 TTL,否則為了 DNS 的穩定性,應保持一個較保守的 TTL。

  1. 為確保 Web 前端的 ALB 只接受來自 Global Accelerator 的流量,請佈建一個加速器,並將其兩個靜態 IP 位址指派給 NimbusPay。設定 Route 53 公有記錄,將公有名稱解析到加速器的 IP(使用帶有靜態 IP 的 A 記錄)。在 ALB 上,設定安全群組的傳入規則,只允許來自這些靜態 IP 位址的流量,並關閉 0.0.0.0/0。這會強制只有來自加速器靜態 IP 的流量才能到達 ALB。使用 CloudWatch Logs 和 VPC Flow Logs 來驗證傳入的來源 IP,並稽核非加速器的流量是否被阻擋。

  2. 對於需要存取共用服務的多個跨帳戶業務單位 VPC,請在共用服務帳戶中使用

undefined

部署一對中央的 Route 53 Resolver 輸出/輸入端點,並將這些端點放置在私有子網路中。在共用帳戶中為共用服務網域建立轉送規則 (

undefined

),並使用 AWS RAM 共用這些規則,或使用

undefined

來允許關聯。每個業務單位將解析器規則與其 VPC 關聯 (

undefined

),從而實現名稱解析,而無需將所有 VPC 直接附加到私有託管區域。對於敏感控制,可將 Route 53 Resolver DNS Firewall 規則群組 (

undefined

undefined

) 附加到共用 VPC,以阻擋不必要的資料外洩或強制執行網域允許清單。理由:NLB 的 TCP 通透傳輸保留了相互 TLS 並能擴展至大量並行連線;將 ALB 傳入流量限制為 Global Accelerator 的靜態 IP,強制了「僅能透過加速器存取」的原則;而使用集中管理的規則搭配解析器端點,則能在維持各帳戶 IAM 邊界和稽核能力的同時,擴展跨帳戶的 DNS 解析功能。


Transit Gateway 與網路拓撲 · 所有領域 · 負載平衡與流量管理

練習這些題目 → · 在 ExamRoll.io 上限時練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通過考試 →

瀏覽 Amazon →

Related guides

一站式存取

一份訂閱。所有考試。

每個方案都可無限存取答案搜尋、練習測驗、AI 解釋和完整的資源庫 — 支援 20 多種語言。

每月
24.87
Just €0.83/day
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

最佳價值
12 個月
179.87
Just €0.49/daySave 40%
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

✓ 包含免費方案 · ✓ 隨時取消 · ✓ 所有方案解鎖完整產品