本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建 Amazon Route 53 和 Route 53 VPC 解析器资源 Amazon CloudFormation
Amazon Route 53 和 Route 53 VPC Resolver 与 Amazon CloudFormation一项服务集成,该服务可帮助您对 Amazon 资源进行建模和设置,从而减少创建和管理资源和基础设施所花费的时间。您可以创建一个描述所需所有 Amazon 资源的模板,并为您预 Amazon CloudFormation 置和配置这些资源。
使用时 Amazon CloudFormation,您可以重复使用您的模板来一致且重复地设置 Route 53 和 VPC 解析器资源。只需描述一次您的资源,然后在多个 Amazon Web Services 账户 区域中一遍又一遍地配置相同的资源。
Route 53、VPC 解析器和模板 Amazon CloudFormation
要为 Route 53、VPC 解析器和相关服务配置和配置资源,您必须了解Amazon CloudFormation 模板。模板是 JSON 或 YAML 格式的文本文件。这些模板描述了您要在 Amazon CloudFormation 堆栈中配置的资源。如果你不熟悉 JSON 或 YAML,可以使用 D Amazon CloudFormation esigner 来帮助你开始使用 Amazon CloudFormation 模板。有关更多信息,请参阅什么是 Amazon CloudFormation 设计器? 在《Amazon CloudFormation 用户指南》中。
Route 53 支持在中创建以下资源类型 Amazon CloudFormation:
-
AWS::Route53::DNSSEC -
AWS::Route53::HealthCheck -
AWS::Route53::HostedZone -
AWS::Route53::KeySigningKey -
AWS::Route53::RecordSet -
AWS::Route53::RecordSetGroup
有关更多信息(包括 Route 53 资源的 JSON 和 YAML 模板示例),请参阅 Amazon CloudFormation 用户指南中的 Amazon Route 53 资源类型参考。
VPC 解析器支持在中 Amazon 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 模板示例,请参阅用户指南中的 R oute 53 VPC 解析器资源类型参考。Amazon CloudFormation
Route 53 和 Amazon CloudFormation的最佳实践
使用 Amazon CloudFormation 管理 Route 53 资源时,请遵循以下最佳实践,以避免常见问题并确保部署可靠。
了解最终一致性
Route 53 使用最终一致的模型进行 DNS 更改。这可能会影响 Amazon CloudFormation 操作,尤其是在回滚和快速连续更改期间。
重要
Amazon CloudFormation 尝试回滚 DNS 记录更改时,由于 Route 53 的最终一致性模型,回滚可能会失败。如果 Amazon CloudFormation 尝试重新创建最近删除但由于最终一致性而似乎仍然存在的记录,则可能会遇到InvalidChangeBatch错误,使您的 DNS 处于损坏状态。
为最大限度地减少与最终一致性有关的问题:
-
谨慎计划更改 - 避免对相同的 DNS 记录进行快速连续更改
-
首先在非生产环境中测试 - 在将其应用于生产环境之前,请务必在开发环境中测试 DNS 更改
-
监控部署-在 DNS 相关部署期间密切关注 Amazon CloudFormation 堆栈事件。有关监控指南,请参阅 监控 Amazon Route 53。
-
妥善准备回滚程序 - 准备手动恢复程序,以防自动回滚失败
DNS 记录的顺序和逻辑 IDs
在中创建多个 DNS 记录时 Amazon CloudFormation,请注意记录排序和逻辑 ID 分配。
警告
如果您在 Amazon CloudFormation 模板中的数组或列表中定义 DNS 记录,则在列表中间插入新记录可能会导致 Amazon CloudFormation 将逻辑重新分配 IDs 给现有记录。这会触发记录替换,从而导致服务中断和回滚失败。
DNS 记录管理的最佳实践:
-
使用显式逻辑 IDs-始终为 DNS 记录分配显式、有意义的逻辑 IDs ,而不是依赖数组索引。有关 Amazon CloudFormation 逻辑的更多信息 IDs,请参阅《Amazon CloudFormation 用户指南》中的 “资源” 部分结构
-
附加新记录 - 向现有列表添加新的 DNS 记录时,请将其附加到列表末尾,而不是将其插入列表中间
-
分组相关记录 - 考虑使用
AWS::Route53::RecordSetGroup将相关记录放在一起进行管理。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的AWS::Route53::RecordSet群组。 -
审核更改集 - 请务必在部署之前审核 Amazon CloudFormation 更改集,以识别意外的记录替换。有关更多信息,请参阅 Amazon CloudFormation 用户指南中的使用更改集更新堆栈。
处理回滚失败
如果由于 DNS 相关问题导致 Amazon CloudFormation 回滚失败,则可能需要执行手动恢复。
从失败的 DNS 回滚中执行手动恢复
-
通过查看 Amazon CloudFormation 堆栈事件和 Route 53 托管区域记录来识别失败的 DNS 记录
-
通过 Route 53 控制台或 API 手动创建或更新缺少的 CLI 记录。有关创建记录的信息,请参阅 使用记录。
-
恢复 DNS 后,更新您的 Amazon CloudFormation 模板以匹配当前状态
-
部署更正后的模板以 Amazon CloudFormation 恢复与实际资源的同步
要防止回滚失败:
-
避免在高流量期间进行可能触发 DNS 记录替换的更改
-
实施运行状况检查和监控以快速检测 DNS 问题。有关运行状况检查的信息,请参阅 创建和更新运行状况检查。
-
考虑对关键 DNS 更改使用蓝绿部署策略。有关部署最佳实践的更多信息,请参阅 Amazon Route 53 的最佳实践。
-
记录手动 DNS 恢复的紧急程序
了解更多关于 Amazon CloudFormation
要了解更多信息 Amazon CloudFormation,请参阅以下资源: