推出 Amazon 应用程序恢复控制器区域切换功能:一种跨区域的应用程序恢复服务
亚马逊AWS官方博客
推出 Amazon 应用程序恢复控制器区域切换功能:一种跨区域的应用程序恢复服务
作为 AWS 的开发人员倡导者,我曾与众多跨多个 AWS 区域运营关键应用程序的企业组织合作过。他们常常共同担忧的一个关键问题是对其区域失效转移策略缺乏信心——即在需要时该策略是否奏效,是否已识别出所有依赖关系,以及其团队是否已充分练习相关流程。传统的处理方式往往使他们对是否具备进行区域切换的能力感到不确定。
今天,我非常高兴地宣布推出 Amazon 应用程序恢复控制器(ARC)区域切换功能,这是一项完全托管且高度可用的功能,能让各组织安心地计划、练习并编排区域切换操作,从而消除跨区域恢复操作中的不确定性。区域切换功能可帮助您对部署在 AWS 上的多区域应用程序进行恢复操作的编排。它为您提供了一个集中的解决方案,可在您需要将应用程序的运行环境从一个 AWS 区域切换到另一个区域时,协调并自动化执行跨 AWS 服务和账户的恢复任务。
许多客户会将业务关键型应用程序部署在多个 AWS 区域中,以满足其可用性需求。当一个操作事件影响到一个区域内的应用程序时,将操作切换到另一个区域则需要协调多个步骤,这些步骤涉及不同的 AWS 服务,如计算、数据库和 DNS 等。这种协调工作通常需要构建和维护复杂的脚本,而这些脚本需要随着应用程序的不断发展进行定期测试和更新。此外,编排并跟踪多个应用程序中区域切换的进展情况,并为合规目的提供成功恢复的证明,通常需要进行人工数据收集。
区域切换功能基于区域数据面板架构而构建,在该架构中,区域切换计划会从被激活的区域开始执行。这种设计在切换过程中消除了对受影响区域的依赖,从而提供一个更具韧性的恢复流程,因为其执行过程与您所切换的区域无关。
利用 ARC 区域切换功能制定恢复计划
利用 ARC 区域切换功能,您可以创建恢复计划,这些计划会明确说明在不同区域之间切换应用程序所需的特定步骤。每个计划都包含代表了在 AWS 资源上所进行的操作的执行块。启动时,区域切换功能支持九种执行块类型:
- ARC 区域切换计划执行块 – 通过引用其他区域切换计划,您可以编排多个应用程序切换到您想要激活的区域的顺序。
- Amazon EC2 Auto Scaling 执行区 – 通过匹配源区域容量的指定百分比,对您目标区域中的 Amazon EC2 计算资源进行扩展。
- ARC 路由控制执行块 – 更改路由控制状态,通过 DNS 运行状况检查来重新引导流量。
- Amazon Aurora 全局数据库执行块 – 为 Aurora Global Database 执行数据库失效转移(可能导致数据丢失)或切换(数据完全不会丢失)操作。
- 手动批准执行块 – 在您的恢复工作流程中添加批准检查点,以便团队成员在继续操作前进行审查和批准。
- 自定义操作 AWS Lambda 执行块 – 通过在激活或停用区域执行 Lambda 函数,添加自定义恢复步骤。
- Amazon Route 53 运行状况检查执行块 – 允许您指定在失效转移期间您的应用程序流量将被重定向至哪些区域。执行区域切换计划时,Amazon Route 53 运行状况检查状态会进行更新,并且流量会根据您的 DNS 配置进行重新定向。
- Amazon Elastic Kubernetes Service(Amazon EKS)资源扩展执行块 – 在恢复过程中,通过匹配源区域容量的指定百分比,对目标区域内的 Kubernetes 容器组(pod)进行扩展。
- Amazon Elastic Container Service(Amazon ECS)资源扩展执行块 – 通过匹配源区域容量的指定百分比,对目标区域内的 ECS 任务进行扩展。
区域切换功能会每隔 30 分钟检查一次资源配置以及 AWS Identity and Access Management(IAM)权限,以持续验证您的计划。在执行过程中,区域切换功能会监控每个步骤的进展情况,并提供详细的日志。您可以通过“区域切换”控制面板以及执行详情页面的底部查看执行状态。
为了帮助您在成本与可靠性之间取得平衡,区域切换功能为您提供了灵活准备备用资源的方式。在恢复过程中,您可以通过使用“区域切换扩展执行块”来为目标区域配置所需的计算容量百分比。对于那些在恢复过程中预计会出现流量激增的关键应用程序,您可以选择将容量扩展到超出 100% 的水平,而设定较低的百分比则有助于实现更短的总体执行时间。但是,需要强调的是,使用其中任何一个扩展执行块并不能保证具备足够的容量,实际的资源可用性取决于恢复时目标区域的容量情况。为了确保取得最佳效果,我们建议您定期测试恢复计划,并在备用区域中维持适当的服务配额。
ARC 区域切换功能包含一个全局控制面板,您可以通过它来监控整个企业及各个区域的区域切换计划状态。此外,还有一个“区域执行情况”控制面板,它只会显示当前控制台区域内的执行情况。此控制面板设计为在每个区域内实现高可用性,以便在操作事件发生时能够正常使用。
通过区域切换功能,可以将资源托管在与包含区域切换计划的账户不同的账户中。如果该计划所使用的资源来自与托管该计划的账户不同的账户,则区域切换功能会使用
executionRole 代入
crossAccountRole,以访问这些资源。此外,可以使用 AWS Resource Access Manager(AWS RAM)在多个账户之间进行集中和共享区域切换计划,从而实现对整个组织的恢复计划的高效管理。
下面我们来看看它的工作原理
让我来向您演示如何创建并执行区域切换计划。此演示包含三个部分。首先,我创建了一个区域切换计划。然后,我定义一个工作流程。最后,我配置了触发器。
第 1 步:创建计划
我导航到 AWS 管理控制台的应用程序恢复控制器部分。我在左侧导航菜单中选择区域切换。然后,我选择创建区域切换计划。
在为我的计划命名之后,我指定了一种多区域恢复方法(主动/被动或主动/主动)。在“主动/被动”模式下,两个应用程序副本被部署到两个区域中,而流量只会被路由至主动区域。被动区域中的副本可以通过执行区域切换计划来激活。
然后,我选择主要区域和备用区域。我还可以选择输入所需的恢复时间目标(RTO)。该服务将利用此值来了解区域切换计划的执行所需时间与我所需要的 RTO 之间的关系。
我进入计划执行 IAM 角色。该角色能够使区域切换功能在执行期间调用 AWS 服务。我会确保我所选择的角色具备被服务调用的权限,并且包含的权限范围是能够使 ARC 正常运行的最小权限集。请参阅文档的 IAM 权限部分以获取详细信息。
当两条计划评估状态通知显示为绿色时,我将创建一个工作流程。我选择构建工作流程以开始操作。
这些计划能让您构建特定的工作流程,通过“区域切换执行块”来恢复您的应用程序。您可以使用执行块来构建工作流程,这些执行块可以按顺序或以并行方式运行,以编排多个应用程序或资源在激活区域中的恢复顺序。一个计划由这些工作流程组成,通过这些工作流程,您可以激活或停用特定的区域。
在本次演示中,我使用图形编辑器来创建工作流程。但您也可以用 JSON 格式来定义工作流程。这种格式更适合自动化操作,或者当您希望将工作流程定义存储在源代码管理系统(SCMS)和基础设施即代码(IaC)工具(例如 AWS CloudFormation)中时。
我可以通过选择工作流程构建器标题旁边的相应选项卡在设计与代码视图之间交替切换。JSON 视图是只读的。我使用图形编辑器设计了工作流程,并将对应的 JSON 格式文件复制下来,将其与我的 IaC 项目文件一同保存。
区域切换功能每隔 30 分钟启动一次评估,以验证您的恢复策略的有效性。它会定期检查您的工作流程中所定义的所有操作在执行时是否都能成功完成。这种主动式的验证会评测多种要素,包括各个账户和不同区域内的 IAM 权限以及资源状态。通过持续监控这些依赖关系,区域切换功能能够确保您的恢复计划保持有效,并能在实际切换操作受到影响之前发现潜在问题。
然而,正如未经测试的备份并非可靠的备份一样,未经测试的恢复计划也不能被视为真正经过验证的计划。虽然持续评估能提供坚实的基础,但我们强烈建议您在测试场景中定期执行计划,以验证其有效性、了解实际恢复时间,并确保您的团队熟悉恢复流程。这种实践的测试对于保持对您的灾难恢复策略的信心至关重要。
第 3 步:创建触发器
触发器用于定义激活刚刚创建的工作流程所需的条件。。它以一组 CloudWatch 警报的形式表示。基于警报的触发器是可选的。您也可以将区域切换功能与手动触发器结合使用。
在控制台的“区域切换”页面上,我选择触发器选项卡,然后选择添加触发器。
对于计划中定义的每个区域,我选择添加触发器来定义将激活该区域的触发器。最后,我选择了区域切换功能将用于触发区域激活的警报及其状态(正常或警报)。
我现在准备测试使用“区域切换”功能来执行区域转换计划的执行情况。重要的是要从我所激活的区域(即工作流程的目标区域)执行该计划,并使用该特定区域中的数据面板。
以下是使用 AWS 命令行界面(AWS CLI)执行计划的方法:
aws arc-region-switch start-plan-execution \
–plan-arn arn:aws:arc-region-switch::[已去除电话]:plan/resource-id \
–target-region us-west-2 \
–action activate
定价和可用性
在所有商业化的 AWS 区域中,均提供区域切换功能,每个计划每月收费 70 美元。每个计划最多可包含 100 个执行块,或者您也可以创建父计划来最多编排 25 个子计划。
亲眼目睹了构建和维护多区域恢复解决方案所涉及的大量工程工作之后,我非常高兴地看到区域切换功能将如何帮助我们的客户实现这一过程的自动化。要开始使用 ARC 区域切换功能,请访问 ARC 控制台并创建您的第一个区域切换计划。有关区域切换功能的更多信息,请访问 Amazon 应用程序恢复控制器(ARC)文档。您还可以联系您的 AWS 账户团队,咨询有关将区域切换功能应用于多区域应用程序的相关问题。
我期待听到您是如何利用区域切换功能来增强多区域应用程序的韧性的相关情况。