如果您正在设计一个新应用程序,请从一开始就将其构建为面向恢复的结构,这样您就可以确保充分利用 Amazon Route 53 应用程序恢复控制器中的恢复功能。
面向恢复的应用程序由多个冗余副本或故障控制单元组成,它们彼此独立地发生故障。您可以通过部署与 AWS 可用区边界一致的副本来设置故障遏制孤岛,如果您从一个新应用程序开始,这比您需要重新架构现有应用程序更容易做到。
以下部分包含一个示例,说明如何在 AWS 可用区中设计具有孤立副本的面向恢复的应用程序。该示例使用 AWS CloudFormation 模板来简化流程,并使用带有示例应用程序的可下载 AWS CloudFormation 和 HashiCorp Terraform 模板,以便您可以快速探索自己设置和使用 Route 53 ARC。
例如,让我们看一个应用程序,该应用程序将流量路由到在 Amazon Elastic Container Service (Amazon ECS) 上运行的服务,前面是网络负载均衡器,并与 Amazon Aurora 数据库交互。您可以使用 AWS CloudFormation 模板启动此应用程序并将其预置为一个堆栈。
为确保您部署各自范围为可用区的孤立副本,请执行以下操作:确保您的应用程序架构使用一个网络负载均衡器,该网络负载均衡器位于一个副本的本地,该副本路由到 Amazon ECS 集群,该集群也是本地的到副本。然后,使用 Amazon Route 53 加权路由策略 DNS 记录连接这些副本。接下来,使用模板中的参数为单个 AWS CloudFormation 模板中的每个副本定义单独的堆栈。(您可以通过阅读AWS CloudFormation 用户指南中的使用嵌套堆栈来了解有关使用嵌套 AWS CloudFormation 结构的更多信息。)
您可以按照以下步骤在 AWS CloudFormation 中构建应用程序:
通过使用支持基于动态参数预置基础设施的基础设施即代码功能,您可以重用 AWS CloudFormation 模板中的定义。您可以在我们在下一节中提供的示例可下载 AWS CloudFormation 模板中看到这一点。使用参数可让您定义与 Route 53 ARC 中以区域为中心的设计模式一致的应用程序,因此通过在模板中使用大约相同数量的定义,您的应用程序更具弹性。
为了帮助您开始使用 Route 53 ARC,我们提供了 AWS CloudFormation 和 HashiCorp Terraform 模板,以及示例应用程序和分步说明,您可以在本地下载和部署这些模板。
部署示例应用程序后,您可以使用模板创建 Route 53 ARC 组件,然后探索使用路由控件来管理流向应用程序的流量。您可以根据自己的场景和应用程序调整模板和流程。