亚马逊AWS官方博客

利用 Amazon Resilience Hub 提高业务连续性

软件系统在现代商业环境中扮演了越来越重要的角色,因为大多数企业依赖于它们来处理数据、与客户交互和管理业务等。这种依赖性使得软件系统的中断或故障会对业务造成严重影响,因此软件系统的韧性能力对于业务连续性非常重要。软件系统的韧性目标通常由两个指标衡量:恢复时间目标(RTO),即从故障中恢复所需的时间;和恢复点目标(RPO),即事故后可能丢失数据的最长时间窗口。根据您的业务和应用程序,这些指标可以用秒、分钟、小时或天来衡量。

Amazon Resilience Hub 是亚马逊云科技推出的一款托管服务,它可以让您为每个部署在亚马逊云科技上的应用程序定义 RTO 和 RPO 目标。然后,它会评估您的配置,以确保它符合您的目标。它提供可行的建议和一个韧性得分,以帮助您持续跟踪应用程序的韧性进展。韧性中心提供一个可自定义的单一仪表板体验,可通过亚马逊云科技管理控制台访问,以运行评估、执行预构建测试并配置警报以识别问题并通知运营人员。

Amazon Resilience Hub 可以发现由 Amazon CloudFormation 部署的应用程序(包括 SAM 和 CDK 应用程序),包括跨区域和跨账户堆栈。Amazon Resilience Hub 还可以从资源组和标签中发现应用程序,或从已在亚马逊云科技云服务目录 AppRegistry 中定义的应用程序中选择。这里的术语“应用程序”不仅指您的应用软件或代码,还包括托管应用程序的整个基础架构堆栈:包括网络、虚拟机、数据库等等。

Amazon Resilience Hub 实践

在使用 Amazon Resilience Hub 之前,我们已经通过 Amazon CloudFormation 在亚马逊云中部署了一个典型的三层应用,架构图如下:

下面就让我们看看如何使用 Amazon Resilience Hub 帮助我们提高应用程序的韧性:

1. 准备

使用我们的账号登录到亚马逊云科技的控制台,选择 Amazon Resilience Hub 服务,点击 Add Application 按钮。

先前准备的应用程序是通过 Amazon CloudFormation 创建的,所以这里我们选择 CloudFormation stacks 向 Resilience Hub 添加应用。

Resilience Hub 检测这些堆栈创建的资源,这些资源可能会影响应用程序的韧性,选择想要包括或排除在评估之外的资源,然后点击下一步。

下一步我们需要选择一个 resiliency policy 与该应用进行关联,这里我们可以点击创建 resiliency policy 按钮。

Resilience Hub 提供了很多建议给到我们,不同的建议对应的 RTO 和 RPO 也不一样,当然我们也可以定制自己的 policy。在本例中,我们使用 Mission Critical 对应的 policy。

下一步,将我们创建的 policy 和应用进行关联,并发布。

2. 评估

发布成功后,我们就可以点击评估按钮,对我们的应用进行韧性评估。

通过评估,我们发现自己的应用有很多 policy 未能满足。

我们可以点击评估报告去查看更多细节,仪表盘显示了同定义的 policy 相比,我们的应用和基础实施哪些配置不满足指标。

3. 改善

在 Recommendations tab 中,Resilience Hub 针对发现的问题给我们提供了很多参考建议,建议不仅包含技术层面还有成本方面的考量,我们可以根据建议进行修正。


根据建议我们对 S3 增加了版本控制,数据库切换为 Aurora,并且改善了备份策略,再次评估后,我们的应用可以达到 policy 中制定的指标。

经过实践我们可以看到,Amazon Resilience Hub 通过提供应用程序韧性评估和建议、持续验证以及可观测的 Dashboard 等帮我们快速定位和解决问题。从而使我们的应用能够持续满足业务连续性的要求。

本篇作者

蔡如海

西云数据解决方案架构师,10+年开发和架构经验,曾就职于知名外企,在媒体、金融等业务领域有丰富的工作经验,擅长云计算、机器学习等技术,并且有丰富的项目管理经验。

沈城伟

西云数据解决方案架构师,15 年 IT 服务服务经验,擅长大型网站架构设计和系统管理。