亚马逊 MWAA 的灾难恢复策略
Amazon MWAA 灾难恢复策略 第二部分
由 Chandan Rupakheti 和 Parnab Basak 于 2024 年 6 月 17 日发表于 Amazon EventBridge、Amazon Managed Workflows for Apache Airflow (Amazon MWAA)、Amazon Simple Storage Service (S3)、AWS Lambda、AWS Step Functions、技术如何做永久链接
重点摘要
重要信息
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 是一个完全管理的编排服务,可简化大规模运行数据处理工作流的过程。该服务提供高可用性,但在区域故障的情况下需要跨区域部署才能恢复。在本文中,我们将深入探讨两种恢复策略备份与恢复以及暖备援,并提供可部署的解决方案。
yt加速器官网入口解决方案的细节可在 GitHub 上找到,README 文件提供了备份与恢复和暖备援过程的进一步指导。
备份与恢复架构
备份和恢复策略涉及定期将 Amazon MWAA 的元数据备份到位于主要区域的 Amazon Simple Storage ServiceS3桶中,并将备份复制到次要区域的 S3 桶中。在主要区域发生故障时,可以在次要区域创建新的 Amazon MWAA 环境,并使用备份的元数据来恢复工作流。
该项目使用 AWS Cloud Development Kit (AWS CDK),并设置为标准的 Python 项目。请参考 README 文件中的详细部署步骤,以在您自己的帐户中进行部署。
主要元件
元件描述主要 Amazon MWAA 环境主要区域的环境主机工作流元数据备份桶主要区域中的桶,用于存储 Airflow 元数据表的定期备份复制备份桶通过 Amazon S3 跨区域复制 同步元数据备份的次要区域桶次要 Amazon MWAA 环境在次要区域中按需创建的环境备份工作流定期将 Airflow 元数据备份到主要区域的 S3 桶恢复工作流监控主要 Amazon MWAA 环境,并在需要时在次要区域发起故障转移图 1 备份恢复架构
备份工作流
备份工作流负责定期备份 Airflow 元数据表并将其存储在备份 S3 桶中 步骤如下:
[1a] 从您的持续集成和交付 (CI/CD) 管道部署提供的解决方案。该管道包含一个 DAG,部署到 DAGs S3 桶,该桶用于备份 Airflow 元数据。[1b] 解决方案启用 DAGs 桶的跨区域复制。对主要区域桶中的任何新更改,包括 DAG 文件、插件和 requirementstxt 文件,都会复制到次要区域的 DAGs 桶中。对于现有对象,则需要通过 S3 批量复制 来进行一次性复制。[1c] 部署到元数据备份的 DAG 定期运行。此备份不包括一些自动生成的表,并且备份的表的列表可配置。默认情况下,解决方案会备份变数、连接、槽池、日志、作业、DAG 运行、触发器、任务实例和任务失败的表。备份的时间间隔也是可配置的,应基于 恢复点目标 (RPO),即业务能够承受的故障期间内的数据损失时间。[1d] 与 DAGs 桶类似,备份桶也通过跨区域复制进行同步,这样元数据备份就可以在次要区域中使用。恢复工作流
恢复工作流定期在次要区域运行,监控主要 Amazon MWAA 环境。该工作流拥有两个主要功能:
将主要 Amazon MWAA 环境的环境配置存储在次要备份桶中,这将用于在故障时重新创建相同的 Amazon MWAA 环境。在检测到故障时执行故障转移。当主要 Amazon MWAA 环境正常运行时,步骤如下请参见图 1:
[2a] Amazon EventBridge 调度程序以指定的时间间隔启动 AWS Step Functions 工作流。[2b] 工作流利用 AWS Lambda 检查主要区域的 Amazon CloudWatch 中主要 Amazon MWAA 环境的 SchedulerHeartbeat 指标。主要区域中的环境默认每 5 秒向 CloudWatch 发送一次心跳。然而,为了不误触发恢复工作流,我们使用 5 分钟的默认聚合周期来检查心跳指标。因此,检测到主要环境故障可能需要最多 5 分钟。[2c] 假设检测到了心跳信号,工作流会对主要 Amazon MWAA 环境进行跨区域的 GetEnvironment 调用。[2d] GetEnvironment 调用的响应被存储在次要备份 S3 桶中,以防在工作流的后续迭代中发生故障。这确保了最新的主环境配置能够用于重新创建次要区域的新环境。工作流在存储配置后成功完成。当主要环境不健康时的步骤请参见图 1
[2a] EventBridge 调度程序在指定的时间启动 Step Functions 工作流。[2b] 工作流利用 Lambda 检查主要区域中的 CloudWatch 以获取调度程序心跳指标并检测故障。检查调度器心跳的 CloudWatch API 是检测故障的推荐方法。不过,您也可以在 Lambda 函数中实施自定义的故障检测策略,比如部署一个 DAG 以定期向 CloudWatch 或其他数据存储发送自定义指标作为心跳,并使用该函数检查这些指标。使用目前基于 CloudWatch 的策略,由于 CloudWatch API 的不可用性,可能会误触发恢复流程。[2c] 步骤省略[2d] 工作流从备份 S3 桶中读取之前存储的环境详细信息。[2e] 从前一步中读取的环境详细信息用于通过 CreateEnvironment API 调用重新创建次要区域中的相同环境。该 API 还需要用户提供的配置文件或环境变量中的其他次要区域特定配置,例如 VPC、子网和安全组。工作流在轮询循环中等待环境变为可用,并调用 DAG 从备份 S3 桶恢复元数据。此 DAG 作为解决方案部署的一部分部署到 DAGs S3 桶中。[2f] 用于恢复元数据的 DAG 完成了新创建的环境的充水,并通过使用 task token integration 通知 Step Functions 工作流完成。新的环境现在开始运行活跃的工作流,恢复成功完成。其他考量
在使用备份和恢复方法时请考虑以下几点:
恢复时间目标 从故障检测到次要区域中工作流运行,故障转移可能会超过 30 分钟。这包括新环境的创建、Airflow 的启动和元数据的恢复。成本 此策略避免了在次要区域运行被动环境的开销。成本仅限于定期备份存储、跨区域数据传输费用和恢复工作流的最小计算。数据损失 RPO 取决于备份频率。这里需要考虑设计权衡。虽然较短的备份间隔可以最小化潜在数据损失,但过于频繁的备份可能会对元数据数据库的性能造成不利影响,进而影响主要 Airflow 环境。此外,该解决方案无法在活跃工作流中途恢复。所有活跃的工作流都将根据提供的计划在次要区域中全新启动。持续管理 在此架构中,Amazon MWAA 环境及其依赖项会自动在各区域之间保持同步。如备份工作流的第 1b 步所述,DAGs S3 桶需要一次性地部署现有资源,以使解决方案有效。暖备援架构
暖备援策略涉及在两个区域中部署相同的 Amazon MWAA 环境。来自主要区域的定期元数据备份将用于在故障转移的情况下重新填充待命环境。

该项目使用 AWS CDK,并设置为标准的 Python 项目。请参考 README 文件中的详细部署步骤,以在您自己的帐户中进行部署。
主要元件
元件描述主要 Amazon MWAA 环境主要区域中正常运行工作流的环境次要 Amazon MWAA 环境随时准备接管的次要区域环境元数据备份桶主要区域中的桶,用于存储 Airflow 元数据表的定期备份复制备份桶通过 S3 跨区域复制同步元数据备份的次要区域桶备份工作流定期将 Airflow 元数据备份到两个区域的 S3 桶恢复工作流监控主要环境,在需要时发起故障转移到次要环境图 2 暖备援架构
与备份和恢复策略相似,备份工作流步骤 1a1d定期将关键的 Amazon MWAA 元数据备份到主要区域中的 S3 桶,并同步到次要区域。
恢复工作流定期在次要区域运行,监控主要环境。在检测到故障时,启动故障转移程序。步骤如下请参见图 2:
[2a] EventBridge 调度程序以指定的时间启动 Step Functions 工作流。[2b] 工作流检查主要区域中的 CloudWatch 以获取调度程序心跳指标,并检查故障。如果主要环境正常,则工作流在没有进一步操作的情况下完成。[2c] 工作流调用 DAG 从备份 S3 桶中恢复元数据。[2d] 用于恢复元数据的 DAG 在充填被动环境后完成,并通过使用 task token integration 通知 Step Functions 工作流完成。被动环境开始根据计划运行活跃工作流。由于次要环境已经在运行,故障转移的时间更快,恢复时间通常在几分钟内。
其他考量
在使用暖备援方法时请考虑以下几点:
恢复时间目标 通过准备就绪的暖备援,RTO 可以低至 5 分钟。该时间仅包括元数据的恢复和在第二区域重新启用 DAG。成本 此策略会产生在两个区域中始终运行相同环境的额外成本。虽然自动扩展的工作者可以保持最小的资源占用,但 Amazon MWAA 的网页服务器和调度器组件将持续在次要环境中活动。其权衡在于 RTO 的显著降低。数据损失 与备份和恢复模型类似,RPO 取决于备份频率。更快的备份周期可以最小化潜在数据损失,但可能会对元数据数据库的性能以及相应的主要 Airflow 环境造成不利影响。持续管理 此方法会增加一些管理开销。与备份和恢复策略不同,对主要环境配置的任何变更需要手动重新应用到次要环境,以保持两者之间的同步。对于次要环境配置的自动同步是一项未来的工作。共同考量
虽然备份和恢复与暖备援策略在实施上有所不同,但它们有一些共同的考量:
定期测试故障转移以验证恢复程序、RTO 和 RPO。启用 Amazon MWAA 环境日志以协助在故障转移过程中的问题调试。使用 AWS CDK 或 AWS CloudFormation 管理基础设施定义。欲了解更多详情,请查看以下 [GitHub Repo](https//github
Meta Llama 3 模型现已在 Amazon SageMaker JumpStart 中提供
Meta Llama 3 模型现已在 Amazon SageMaker JumpStart 中上线关键点总结Meta Llama 3 基础模型可以在 Amazon SageMaker JumpStart 中用于部署、推理和微调。Llama 3 模型有优化对话的微调版本,可用于多种用例。Amazon ...
使用 AWS DMS 升级您的 Amazon DocumentDB 集群 数据库博客
使用AWS DMS升级Amazon DocumentDB集群作者:Murali Sankar、Cheryl Joseph和Sourav Biswas 2023年10月24日 高级300,Amazon DocumentDB,AWS数据库迁移服务,技术如何做关键要点升级Amazon DocumentDB...