探索 Amazon MWAA 网络架构 - Amazon Managed Workflows for Apache Airflow

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

探索 Amazon MWAA 网络架构

以下部分介绍构成 Amazon MWAA 环境的主要组件,以及每个环境为管理其资源、保护数据安全以及为工作流程提供监控和可见性而集成的一组 AWS 服务。

Amazon MWAA 组件

Amazon MWAA 环境由以下四个主要组件组成:

  1. 调度程序 — 解析和监视您的所有任务 DAGs,并在满足 DAG 的依赖关系时将任务排队等候执行。Amazon MWAA 将调度程序部署为一个至少有 2 个调度程序的 AWS Fargate 集群。根据工作负载,您可以将计划程序数量增加到五个。有关 Amazon MWAA 环境类的更多信息,请参阅 Amazon MWAA 环境类

  2. 工作线程— 运行计划任务的一个或多个 Fargate 任务。环境中的工作线程数量由您指定的最小最大数量之间的范围决定。当排队和正在运行的任务数量超过现有工作线程的处理能力时,Amazon MWAA 会开始自动扩缩工作线程。当正在运行且排队的任务总和为零超过两分钟时,Amazon MWAA 会将工作线程数量缩减到最低。有关 Amazon MWAA 如何处理自动扩缩工作线程的更多信息,请参阅 Amazon MWAA 自动扩缩

  3. Web 服务器— 运行 Apache Airflow Web UI。您可以将 Web 服务器配置为私有或公有网络访问权限。在这两种情况下,对您的 Apache Airflow 用户的访问权限都由您在 AWS Identity and Access Management (IAM) 中定义的访问控制策略控制。有关为环境配置 IAM 访问策略的更多信息,请参阅访问 Amazon MWAA 环境

  4. 数据库— 存储有关 Apache Airflow 环境和工作流程的元数据,包括 DAG 运行历史记录。该数据库是一个单租户 Aurora PostgreSQL 数据库, AWS由计划程序和工作人员的 Fargate 容器管理,并可通过私有保护的 A ma zon VPC 终端节点访问这些容器。

每个 Amazon MWAA 环境还与一组 AWS 服务交互以处理各种任务,包括存储 DAGs 和访问以及任务依赖关系、保护您的静态数据以及记录和监控您的环境。下图演示了 Amazon MWAA 环境的不同组件。

此图显示了 Amazon MWAA 环境的架构。
注意

服务 Amazon VPC 不是共享 VPC。Amazon MWAA 会为您创建的每个环境创建一个自有的 VP AWS C。

  • Amazon S3 — Amazon MWAA 将您的所有工作流程资源(例如 DAGs需求和插件文件)存储在亚马逊 S3 存储桶中。有关创建存储桶作为创建环境的一部分以及上传 Amazon MWAA 资源的更多信息,请参阅《Amazon MWAA 用户指南》中的为 Amazon MWAA 创建 Amazon S3 存储桶

  • Amazon SQS — Amazon MWAA 使用 Amazon SQS 将工作流程任务与 Celery 执行程序一起排队。

  • Amazon ECR — Amazon ECR 托管所有 Apache Airflow 镜像。亚马逊 MWAA 仅支持 AWS 托管 Apache Airflow 映像。

  • AWS KMS— Amazon MWAA 使用 AWS KMS 来确保您的静态数据是安全的。默认情况下,Amazon MWAA 使用AWS 托管 AWS KMS 密钥,但您可以将环境配置为使用自己的客户 AWS KMS 托管密钥。有关使用您自己的客户管理 AWS KMS 密钥的更多信息,请参阅 Amazon MWAA 用户指南中的客户管理的数据加密密钥

  • CloudWatch— Amazon MWAA 与 CloudWatch Apache Airflow 日志和环境指标集成并向其提供 CloudWatch,允许您监控亚马逊 MWAA 资源并对问题进行故障排除。

连接

您的 Amazon MWAA 环境需要访问与其集成的所有 AWS 服务。亚马逊 MWAA 执行角色控制如何授予亚马逊 MWAA 代表您连接其他 AWS 服务的访问权限。要实现网络连接,您可以为 Amazon VPC 提供公共互联网访问权限,也可以创建 Amazon VPC 端点。有关为环境配置 Amazon VPC 端点 (AWS PrivateLink) 的更多信息,请参阅《Amazon MWAA 用户指南》中的在 Amazon MWAA 上管理对 VPC 端点的访问

Amazon MWAA 在计划程序和工作线程上安装要求。如果您的需求来自公共PyPi存储库,则您的环境需要连接到 Internet 才能下载所需的库。对于私有环境,您可以使用私有 PyPi 存储库,也可以将.whl文件中的库捆绑为环境的自定义插件。

当您在私有模式下配置 Apache Airflow 时,Amazon VPC 只能通过Amazon VPC 端点访问 Apache Airflow UI。

有关联网的更多信息,请参阅《Amazon VPC 用户指南》中的联网