View a markdown version of this page

使用创建亚马逊 Route 53 和 Route 53 VPC 解析器资源 AWS CloudFormation - Amazon Route 53

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用创建亚马逊 Route 53 和 Route 53 VPC 解析器资源 AWS CloudFormation

Amazon Route 53 和 Route 53 VPC 解析器与集成在一起 AWS CloudFormation,该服务可帮助您建模和设置 AWS 资源,从而减少您在创建和管理资源和基础设施上所花费的时间。您可以创建一个描述所需 AWS 资源的模板,然后为您预 CloudFormation 置和配置这些资源。

使用时 CloudFormation,您可以重复使用模板来始终如一地重复设置 Route 53 和 VPC 解析器资源。描述一次您的资源,然后在多个 AWS 账户 和区域中一遍又一遍地预置相同的资源。

Route 53、VPC 解析器和 CloudFormation 模板

要为 Route 53、VPC 解析器和相关服务预置和配置资源,您必须了解CloudFormation 模板。模板是 JSON 或 YAML 格式的文本文件。这些模板描述了您要在 CloudFormation 堆栈中预置的资源。如果你不熟悉 JSON 或 YAML,你可以使用 CloudFormation Designer 来帮助你开始使用 CloudFormation 模板。有关更多信息,请参阅什么是 CloudFormation 设计师?在《AWS CloudFormation 用户指南》中

Route 53 支持在中创建以下资源类型 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 资源类型参考

VPC 解析器支持在中 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

有关更多信息,包括 VPC 解析器资源的 JSON 和 YAML 模板示例,请参阅用户指南中的 Route 53 VPC 解析器资源类型参考。AWS CloudFormation

53 号公路的最佳实践和 CloudFormation

使用 CloudFormation 管理 Route 53 资源时,请遵循以下最佳做法,以避免常见问题并确保可靠部署。

了解最终一致性

Route 53 使用最终一致的模型进行 DNS 更改。这可能会影响 CloudFormation 操作,尤其是在回滚和快速连续更改期间。

重要

当 CloudFormation 尝试回滚 DNS 记录更改时,由于 Route 53 最终一致性模型,回滚可能会失败。如果 CloudFormation 尝试重新创建最近删除但由于最终一致性而似乎仍然存在的记录,则可能会遇到InvalidChangeBatch错误,使您的 DNS 处于损坏状态。

为最大限度地减少与最终一致性有关的问题:

  • 谨慎计划更改 - 避免对相同的 DNS 记录进行快速连续更改

  • 首先在非生产环境中测试 - 在将其应用于生产环境之前,请务必在开发环境中测试 DNS 更改

  • 监控部署 -在 DNS-related 部署期间密切关注 CloudFormation 堆栈事件。有关监控指南,请参阅 监控 Amazon Route 53

  • 妥善准备回滚程序 - 准备手动恢复程序,以防自动回滚失败

DNS 记录排序和逻辑 ID

在中创建多个 DNS 记录时 CloudFormation,请注意记录顺序和逻辑 ID 分配。

警告

如果您在 CloudFormation 模板中的数组或列表中定义 DNS 记录,则在列表中间插入新记录可能会导致 CloudFormation 将逻辑 ID 重新分配给现有记录。这会触发记录替换,从而导致服务中断和回滚失败。

DNS 记录管理的最佳实践:

  • 使用显式逻辑 ID - 始终为 DNS 记录分配显式、有意义的逻辑 ID,而不是依赖数组索引。有关 CloudFormation 逻辑 ID 的更多信息,请参阅《AWS CloudFormation 用户指南》中的资源部分结构

  • 附加新记录 - 向现有列表添加新的 DNS 记录时,请将其附加到列表末尾,而不是将其插入列表中间

  • 分组相关记录 - 考虑使用 AWS::Route53::RecordSetGroup 将相关记录放在一起进行管理。有关更多信息,请参阅《AWS CloudFormation 用户指南》RecordSetGroup中的 AWS::Route 53::

  • 审核更改集 - 请务必在部署之前审核 CloudFormation 更改集,以识别意外的记录替换。有关更多信息,请参阅 AWS CloudFormation 用户指南中的使用更改集更新堆栈

处理回滚失败

如果 CloudFormation 回滚由于 DNS-related 问题而失败,则可能需要执行手动恢复。

从失败的 DNS 回滚中执行手动恢复
  1. 通过查看 CloudFormation 堆栈事件和 Route 53 托管区域记录来识别失败的 DNS 记录

  2. 通过 Route 53 控制台或 API 手动创建或更新缺少的 CLI 记录。有关创建记录的信息,请参阅 使用记录

  3. 恢复 DNS 后,更新您的 CloudFormation 模板以匹配当前状态

  4. 部署更正后的模板以 CloudFormation 恢复与实际资源同步

要防止回滚失败:

  • 避免在高流量期间进行可能触发 DNS 记录替换的更改

  • 实施运行状况检查和监控以快速检测 DNS 问题。有关运行状况检查的信息,请参阅 创建和更新运行状况检查

  • 考虑对关键 DNS 更改使用蓝绿部署策略。有关部署最佳实践的更多信息,请参阅 Amazon Route 53 的最佳实践

  • 记录手动 DNS 恢复的紧急程序

了解有关 CloudFormation

要了解更多信息 CloudFormation,请参阅以下资源: