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

探索 Amazon MWAA 网络架构

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

Amazon MWAA 组件

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

  1. 计划程序— 解析和监控所有 DAG,并在满足 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 运行历史记录。该数据库是由 AWS 托管的单租户 Aurora PostgreSQL 数据库,可通过私有保护的 Amazon VPC 端点从计划程序和工作线程的 Fargate 容器访问。

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

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

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

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

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

  • Amazon ECR — Amazon ECR 托管所有 Apache Airflow 镜像。Amazon 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 集成,并向 CloudWatch 提供 Apache Airflow 日志和环境指标,允许您监控 Amazon MWAA 资源并排查问题。

连接

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

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

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

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