首页  »  亚马逊云科技解决方案  »  数据分析  »  基于 Amazon EKS 的云原生 Airflow 解决方案站

基于 Amazon EKS 的云原生 Airflow 解决方案

此亚马逊云科技解决方案有何用途 ?

该解决方案帮助您快速在亚马逊云上部署高可用的 Apache Airflow 集群。Apache Airflow 是一种开源工具,可用于以编程方式来编写、计划和监控流程顺序以及被称为“工作流”的任务。该方案能够帮助您快速部署 Airflow 集群,通过与亚马逊云科技的服务集成,实现高可用、弹性扩展和高性价比­。通过该方案,您可以专注于使用 Airflow 和 Python 来创建工作流,减少大规模安装所耗费的时间。关于 Airflow 详细的特性信息,请见 Airflow 网站

方案优势

Apache Airflow 在亚马逊云上的最佳实践

该解决方案为您提供了 Apache Airflow 在亚马逊云上的最佳实践。利用亚马逊云托管服务实现服务可用性、数据持久化和服务指标监控等性能方面的增强。

ARM 架构部署提升性价比

该解决方案全部基于 ARM 架构部署, Amazon EC2、Amazon RDS 和 Amazon ElastiCache 等服务全部基于 Gravtion2,帮助您提升性价比。

弹性扩展计算资源

该解决方案采用 Karpenter 和 KEDA 进行弹性扩展, KEDA 根据排队或运行状态的任务自动调整 Airflow Celery Worker 的 Pod 数量,同时在需要更多计算资源时,通过 Karpenter 向集群中动态添加更多的 EC2 实例来调整集群的计算容量。

亚马逊云科技解决方案概述

以下架构图展示了整个方案的部署架构。(单击可放大):

  1. 为保证高可用,该方案支持部署在两个可用区中。
  2. Amazon VPC:构建可靠安全的虚拟网络,在 VPC 中划分公有子网和私有子网部署方案中的资源。
  3. Amazon EKS:利用 EKS 部署 Airflow 的主要组件,例如 Web UI、Scheduler、Worker 等,底层计算资源全部使用基于 ARM 的 EC2,EKS 的所有镜像源为 Amazon ECR,最后通过 Karpenter 动态扩展新的 EC2 资源。
  4. Amazon Aurora for PostgreSQL:使用 PostgreSQL 作为 Airflow 的元数据存储后端,选择托管服务 Amazon Aurora for PostgreSQL 作为托管数据库服务,减少了日常运维的时间,并增强可用性和可靠性。
  5. Amazon ElastiCache for Redis:使用 Redis 作为 Airflow 消息队列中间件。
  6. Amazon CodeCommit:存储 Airflow DAG 的代码。
  7. Amazon EFS: 通过 EFS 实现 DAG 代码的共享,同时也作为 EKS 的持久化存储。
  8. Amazon CloudWatch: 使用两个功能:
  • Amazon CloudWatch Logs,通过 FluentBit 收集 Airflow 的日志,除了在 Airflow UI 上也可以通过 CloudWatch 直接看到日志。
  • Container Insight 收集相关的监控指标。

基于 Amazon EKS 的云原生 Airflow 解决方案

版本 1.0.0
上次更新日期:11/2022
作者:亚马逊云科技

查看源代码