

# REL13-BP05 自动执行恢复
<a name="rel_planning_for_recovery_auto_recovery"></a>

 实施可靠、可观测、可重复且经过测试的自动化恢复机制，来降低故障的风险和业务影响。

 **期望结果：**您已经为恢复流程实施了有据可查、标准化且经过全面测试的自动化工作流程。恢复自动化功能会自动纠正导致数据丢失或不可用（低风险）的小问题。您可以针对严重事件快速调用恢复流程，在恢复流程运行时观察补救行为，并在观测到危险情况或故障时结束这些流程。

 **常见反模式：**
+  您依赖于处于故障或已降级状态的组件或机制，作为恢复计划的一部分。
+  恢复流程需要手动干预，例如控制台访问（也称为*单击操作*）。
+  您在存在数据丢失或不可用高风险的情况下自动启动恢复过程。
+  您没有包含一个机制来中止不起作用或带来额外风险的恢复过程（如*暗灯* 或*红色的大型停止按钮*）。

 **建立此最佳实践的好处：**
+  提高了恢复操作的可靠性、可预测性和一致性。
+  能够实现要求更高的恢复目标，包括恢复时间目标（RTO）和恢复点目标（RPO）。
+  降低了事件期间恢复失败的可能性。
+  降低了与容易出现人为错误的手动恢复过程相关的故障风险。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

 要实施自动恢复，您需要一种使用 AWS 服务和最佳实践的全面方法。首先，请确定工作负载中的关键组件和潜在故障点。开发自动化流程，无需人工干预即可从故障中恢复工作负载和数据。

 使用基础设施即代码（IaC）原则开发恢复自动化功能。这使您的恢复环境与源环境保持一致，并支持对恢复过程进行版本控制。要编排复杂的恢复工作流程，可以考虑诸如 [AWS Systems Manager 自动化](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)或 [AWS Step Functions](https://aws.amazon.com/step-functions/) 等解决方案。

 恢复过程自动化可带来显著的好处，有助于您更轻松地实现恢复时间目标（RTO）和恢复点目标（RPO）。但是，此类功能可能会遇到意外情况，而可能会导致失败或造成新的风险，例如额外的停机时间和数据丢失。要降低这种风险，请提供快速停止正在进行的恢复自动化的功能。一旦停止，您就可以进行调查并采取纠正措施。

 对于支持的工作负载，可以考虑使用 AWS 弹性灾难恢复（AWS DRS）等解决方案来提供自动失效转移。AWSDRS 会持续将计算机（包括操作系统、系统状态配置、数据库、应用程序和文件）复制到目标 AWS 账户和首选区域中的暂存区。如果发生事件，AWS DRS 会自动将复制的服务器转换为 AWS 上恢复区域中完全预置的工作负载。

 维护和改进自动恢复是一个持续的过程。根据经验教训不断测试和完善恢复过程，并随时了解可以增强恢复能力的新 AWS 服务和功能。

### 实施步骤
<a name="implementation-steps"></a>

1.  **规划自动恢复** 

   1.  对您的工作负载架构、组件和依赖关系进行全面审核，来确定和规划自动恢复机制。将工作负载的依赖关系分类为*硬* 依赖关系和*软* 依赖关系。硬依赖关系是指工作负载运行所必须具备且无法替代的依赖关系。软依赖关系是工作负载通常使用的依赖关系，但此类依赖关系可以用临时替代系统或流程替换，或者可以通过[优雅降级](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_graceful_degradation)进行处理。

   1.  建立识别和恢复丢失或已损坏数据的流程。

   1.  定义在完成恢复操作后确认已恢复的稳定状态的步骤。

   1.  考虑为使恢复的系统准备好提供全面服务所需的任何操作，例如预热和填充缓存。

   1.  考虑在恢复过程中可能遇到的问题以及如何检测和修复这些问题。

   1.  考虑无法访问主站点及其控制面板的场景。验证可以在不依赖主站点的情况下独立执行恢复操作。考虑使用诸如 [Amazon 应用程序恢复控制器（ARC）](https://aws.amazon.com/application-recovery-controller/)之类的解决方案来重定向流量，而无需手动更改 DNS 记录。

1.  **开发自动恢复流程** 

   1.  实施自动化的故障检测和失效转移机制，来实现免手动恢复。构建控制面板（例如使用 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)）来报告自动恢复过程的进度和运行状况。包括验证成功恢复的过程。提供一种机制来中止正在进行的恢复。

   1.  对于无法自动恢复的故障，编写[行动手册](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_testing_resiliency_playbook_resiliency)作为后备流程，并考虑制定[灾难恢复计划](https://aws.amazon.com/disaster-recovery/faqs/#Core_concepts)。

   1.  测试恢复过程，如 [REL13-BP03](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_dr_tested.html) 中所述。

1.  **为恢复做好准备** 

   1.  评估恢复站点的状态并提前为其部署关键组件。有关更多详细信息，请参阅 [REL13-BP04](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_for_recovery_config_drift.html)。

   1.  为恢复操作定义明确的角色、职责和决策过程，涉及整个组织的有关利益相关者和团队。

   1.  定义启动恢复过程的条件。

   1.  制定计划来还原恢复过程，需要时或在认为安全之后回退到主站点。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [REL07-BP01 在获取或扩展资源时利用自动化](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_adapt_to_changes_autoscale_adapt.html) 
+  [REL11-BP01 监控工作负载的所有组件以检测故障](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_withstand_component_failures_monitoring_health.html) 
+  [REL13-BP02 使用定义的恢复策略来实现恢复目标](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_for_recovery_disaster_recovery.html) 
+  [REL13-BP03 测试灾难恢复实施以验证实施效果](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_dr_tested.html) 
+  [REL13-BP04 管理灾难恢复站点或区域的配置偏差](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_for_recovery_config_drift.html) 

 **相关文档：**
+  [AWS Architecture Blog: Disaster Recovery](https://aws.amazon.com/blogs/architecture/tag/disaster-recovery-series/) 系列博客文章 
+  [AWS 上工作负载的灾难恢复：云中的恢复（AWS 白皮书）](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-workloads-on-aws.html) 
+  [Orchestrate Disaster Recovery Automation using Amazon Route 53 ARC and AWS Step Functions](https://aws.amazon.com/blogs/networking-and-content-delivery/orchestrate-disaster-recovery-automation-using-amazon-route-53-arc-and-aws-step-functions/) 
+  [Build AWS Systems Manager Automation runbooks using AWS CDK](https://aws.amazon.com/blogs/mtbuild-aws-systems-manager-automation-runbooks-using-aws-cdk/) 
+  [AWS Marketplace: Products That Can Be Used for Disaster Recovery](https://aws.amazon.com/marketplace/search/results?searchTerms=Disaster+recovery) 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
+  [AWS 弹性灾难恢复](https://aws.amazon.com/disaster-recovery/) 
+  [使用弹性灾难恢复进行失效转移和失效自动恢复](https://docs.aws.amazon.com/drs/latest/userguide/failback.html) 
+  [AWS 弹性灾难恢复资源](https://aws.amazon.com/disaster-recovery/resources/) 
+  [APN 合作伙伴：有助于进行灾难恢复的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=Disaster+Recovery) 

 **相关视频：**
+  [AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)](https://youtu.be/2e29I3dA8o4) 
+  [AWS re:Invent 2022: AWS On Air ft. AWS Failback for AWS Elastic Disaster Recovery](https://youtu.be/Ok-vpV8b1Hs) 