本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建亚马逊 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 回滚中执行手动恢复
-
通过查看 CloudFormation 堆栈事件和 Route 53 托管区域记录来识别失败的 DNS 记录
-
通过 Route 53 控制台或 API 手动创建或更新缺少的 CLI 记录。有关创建记录的信息,请参阅 使用记录。
-
恢复 DNS 后,更新您的 CloudFormation 模板以匹配当前状态
-
部署更正后的模板以 CloudFormation 恢复与实际资源同步
要防止回滚失败:
-
避免在高流量期间进行可能触发 DNS 记录替换的更改
-
实施运行状况检查和监控以快速检测 DNS 问题。有关运行状况检查的信息,请参阅 创建和更新运行状况检查。
-
考虑对关键 DNS 更改使用蓝绿部署策略。有关部署最佳实践的更多信息,请参阅 Amazon Route 53 的最佳实践。
-
记录手动 DNS 恢复的紧急程序
了解有关 CloudFormation
要了解更多信息 CloudFormation,请参阅以下资源: