本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 建立 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 復原執行手動復原
-
透過檢閱 AWS CloudFormation 堆疊事件和 Route 53 託管區域記錄來識別失敗的 DNS 記錄
-
透過 Route 53 主控台或 API 手動建立或更新缺少的 DNS 記錄。如需建立記錄的資訊,請參閱 使用記錄。
-
DNS 還原後,請更新您的 AWS CloudFormation 範本以符合目前狀態
-
部署修正後的範本,以 AWS CloudFormation 恢復與實際資源的同步
若要防止轉返失敗:
-
避免在高流量期間進行可能觸發 DNS 記錄取代的變更
-
實作運作狀態檢查和監控,以快速偵測 DNS 問題。如需運作狀態檢查的資訊,請參閱 建立和更新運作狀態檢查。
-
考慮使用藍綠部署策略進行關鍵 DNS 變更。如需部署最佳實務的詳細資訊,請參閱 Amazon Route 53 的最佳實務。
-
記錄手動 DNS 復原的緊急程序
進一步了解 AWS CloudFormation
若要進一步了解 AWS CloudFormation,請參閱下列資源: