使用 建立 Amazon Route 53 和資源 Amazon Route 53 ResolverAWS CloudFormation - Amazon Route 53

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 建立 Amazon Route 53 和資源 Amazon Route 53 ResolverAWS CloudFormation

Amazon Route 53 和 Amazon Route 53 Resolver 已與 整合 AWS CloudFormation,這項服務可協助您建立和設定 AWS 資源,以減少建立和管理資源和基礎設施的時間。您可以建立範本來描述您想要的所有 AWS 資源,並為您 AWS CloudFormation 佈建和設定這些資源。

使用 時 AWS CloudFormation,您可以重複使用範本來一致且重複地設定 Route 53 和 Route 53 Resolver 資源。描述您的資源一次,然後在多個 AWS 帳戶 和 區域中逐一佈建相同的資源。

Route 53、Route 53 Resolver 和 AWS CloudFormation 範本

若要佈建和設定 Route 53、Route 53 Resolver 與相關服務的資源,您必須了解 AWS CloudFormation 範本。範本是以 JSON 或 YAML 格式化的文本檔案。這些範本說明您要在 AWS CloudFormation 堆疊中佈建的資源。如果您不熟悉 JSON 或 YAML,您可以使用 AWS CloudFormation 設計工具來協助您開始使用 AWS CloudFormation 範本。如需詳細資訊,請參閱AWS CloudFormation 《 使用者指南》中的什麼是 AWS CloudFormation 設計工具?

Route 53 支援在 中建立下列資源類型 AWS CloudFormation:

  • AWS::Route53::DNSSEC

  • AWS::Route53::HealthCheck

  • AWS::Route53::HostedZone

  • AWS::Route53::KeySigningKey

  • AWS::Route53::RecordSet

  • AWS::Route53::RecordSetGroup

如需更多詳細資訊 (包括 Route 53 資源的 JSON 和 YAML 範本範例),請參閱 AWS CloudFormation 使用者指南中的 Amazon Route 53 資源類型參考

Route 53 Resolver 支援在 中建立下列資源類型 AWS CloudFormation:

  • AWS::Route53Resolver::FirewallDomainList

  • AWS::Route53Resolver::FirewallDomainList

  • AWS::Route53Resolver::FirewallRuleGroupAssociation

  • AWS::Route53Resolver::ResolverDNSSECConfig

  • AWS::Route53Resolver::ResolverEndpoint

  • AWS::Route53Resolver::ResolverQueryLoggingConfig

  • AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation

  • AWS::Route53Resolver::ResolverRule

  • AWS::Route53Resolver::ResolverRuleAssociation

如需更多詳細資訊 (包括 Route 53 Resolver 資源的 JSON 和 YAML 範本範例),請參閱 AWS CloudFormation 使用者指南中的 Amazon Route 53 Resolver 資源類型參考

Route 53 和 的最佳實務 AWS CloudFormation

使用 AWS CloudFormation 管理 Route 53 資源時,請遵循這些最佳實務,以避免常見問題並確保可靠的部署。

了解最終一致性

Route 53 使用 DNS 變更的最終一致模型。這可能會影響 AWS CloudFormation 操作,尤其是在復原和快速連續變更期間。

重要

當 AWS CloudFormation 嘗試轉返 DNS 記錄變更時,轉返可能會因為 Route 53 最終一致性模型而失敗。如果 AWS CloudFormation 嘗試重新建立最近刪除但由於最終一致性而仍然存在的記錄,您可能會遇到讓 DNS 處於中斷狀態的InvalidChangeBatch錯誤。

若要將與最終一致性相關的問題降至最低:

  • 仔細規劃變更 - 避免對相同的 DNS 記錄進行快速的連續變更

  • 先在非生產環境中測試 - 一律先測試開發環境中的 DNS 變更,再套用到生產環境

  • 監控部署 - 在 DNS 相關部署期間密切監控 AWS CloudFormation 堆疊事件。如需監控指引,請參閱 監控 Amazon Route 53

  • 準備好轉返程序 - 在自動轉返失敗時準備手動復原程序

DNS 記錄排序和邏輯 IDs

在 中建立多個 DNS 記錄時 AWS CloudFormation,請注意記錄順序和邏輯 ID 指派。

警告

如果您在 AWS CloudFormation 範本的陣列或清單中定義 DNS 記錄,在清單中間插入新記錄可能會導致 AWS CloudFormation 將邏輯 IDs 重新指派給現有記錄。這會觸發記錄可能導致服務中斷和轉返失敗的替換。

DNS 記錄管理的最佳實務:

  • 使用明確邏輯 IDs - 一律將明確、有意義的邏輯 IDs 指派給 DNS 記錄,而不是依賴陣列索引。如需邏輯 IDs AWS CloudFormation 的詳細資訊,請參閱AWS CloudFormation 《 使用者指南》中的資源區段結構

  • 附加新記錄 - 將新 DNS 記錄新增至現有清單時,請將它們附加到結尾,而不是插入中間

  • 群組相關記錄 - 考慮使用 AWS::Route53::RecordSetGroup 一起管理相關記錄。如需詳細資訊,請參閱AWS CloudFormation 《 使用者指南》中的 AWS::Route53::RecordSetGroup

  • 檢閱變更集 - 一律在部署之前檢閱 AWS CloudFormation 變更集,以識別非預期的記錄替換。如需詳細資訊,請參閱《AWS CloudFormation 使用者指南》中的使用變更集更新堆疊

處理轉返失敗

如果 AWS CloudFormation 轉返因 DNS 相關問題而失敗,您可能需要執行手動復原。

從失敗的 DNS 復原執行手動復原
  1. 透過檢閱 AWS CloudFormation 堆疊事件和 Route 53 託管區域記錄來識別失敗的 DNS 記錄

  2. 透過 Route 53 主控台或 API 手動建立或更新缺少的 DNS 記錄。如需建立記錄的資訊,請參閱 使用記錄

  3. DNS 還原後,請更新您的 AWS CloudFormation 範本以符合目前狀態

  4. 部署修正後的範本,以 AWS CloudFormation 恢復與實際資源的同步

若要防止轉返失敗:

  • 避免在高流量期間進行可能觸發 DNS 記錄取代的變更

  • 實作運作狀態檢查和監控,以快速偵測 DNS 問題。如需運作狀態檢查的資訊,請參閱 建立和更新運作狀態檢查

  • 考慮使用藍綠部署策略進行關鍵 DNS 變更。如需部署最佳實務的詳細資訊,請參閱 Amazon Route 53 的最佳實務

  • 記錄手動 DNS 復原的緊急程序

進一步了解 AWS CloudFormation

若要進一步了解 AWS CloudFormation,請參閱下列資源: