【灾难恢复】AWS上数据库的灾难恢复策略 --自动化灾难恢复战略

视频号

微信公众号

知识星球

Chinese, Simplified

您可以选择实施完全或部分自动化,以更好地控制灾难恢复。如果您使用的是备份和恢复DR选项,则可以使用AWS backup自动化备份,该选项支持所有Amazon RDS数据库以及DynamoDB、Amazon DocumentDB和Amazon Neptune表。

灾难事件检测

为了缩短恢复时间,您可以考虑自动检测区域范围的事件,然后可以启动到灾难恢复区域的故障切换。为了实现自动化检测以实现积极的RTO,您可以构建一个基于健康检查的解决方案。这些健康检查不会停止于心跳(检查网络中的控制平面和数据平面模块是否可以彼此通信),而是更深入地评估应用程序组件的相互关联性,以实现准确的预测。然而,自动化解决方案可能会带来错误警报的风险,从而导致不必要的故障切换。在这种情况下,您应该谨慎,因为不必要的故障切换会给您的业务带来可用性问题。您还可以在工作流中构建手动覆盖,以确认已执行故障切换。您可以订阅Service Health Dashboard RSS提要,随时了解服务级别中断的情况。此外,您可以在您的主要地区和帐户中使用AWS Health Dashboard(需要AWS帐户),以了解可能影响您帐户的事件。这些可以帮助您在发生区域性事件时做出明智的失败决策。

故障转移

无论您选择哪种灾难恢复策略,您都可以构建自定义灾难恢复自动化解决方案,以执行到灾难恢复区域的故障切换。这种自动化可以最大限度地减少手动干预的需要,并在测试DR解决方案时提供更好的控制。您可以从AWS服务API中进行选择,AWS根据组织的偏好提供多种语言,如JavaScript、Python、PHP、.NET、Ruby、Java、Go、Node.js和C++。要构建使用这些AWS服务API的自动化,您应该首先将重点放在将数据库基础设施转换为AWS CloudFormation或Terraform模板形式的代码上。这些模板可以帮助您自动化多个数据库的故障切换,并维护应用程序和数据库组件在DR区域中的备份顺序。

出于灾难恢复目的,我们建议您关注以下两个目标:

  • 现有的CloudFormation堆栈应该导出有关数据库的相关信息,包括实例名称和端点。您的自动化流程可以参考区域内的这些导出值,并执行有助于DR操作的操作。
  • 如果您有生产中的资源,但没有关联的CloudFormation堆栈,那么应该专注于为这些资源创建堆栈。还要确保这些堆栈包含正确的导出值,如前一点所述。

当您达到这两个目标后,您可以使用组织选择的语言构建自动化解决方案,以利用CloudFormation导出,并在发生灾难时自动执行所需的切换操作。例如,如果您有作为CloudFormation模板部署的ElastiCache For Redis全局数据存储,则自动化代码可以访问CloudFormation导出,该导出提供有关全局数据存储的详细信息。在发生灾难时,代码可以使用ElastiCache for Redis服务API自动将辅助数据存储升级到主数据存储,而无需任何手动干预。

在一个典型的场景中,自动化应该可以扩展到组织中的多个数据库。您可以使用AWS Step Functions或AWS Batch来扩展多个数据库的自动化解决方案。

本文地址
https://architect.pub/disaster-recovery-strategy-databases-aws-automating-your-dr-strategy
SEO Title
Disaster recovery strategy for databases on AWS --Automating your DR strategy