

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

# 探索 Amazon MWAA 网络架构
<a name="mwaa-architecture"></a>

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

**Topics**
+ [Amazon MWAA 组件](#architecture-components)
+ [连接](#networking-requirements)

## Amazon MWAA 组件
<a name="architecture-components"></a>

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

1.  **计划程序**— 解析和监控所有 DAG，并在满足 DAG 的依赖项时对任务进行排队，以便执行。Amazon MWAA 将调度程序部署为一个至少有 2 个调度程序的 Amazon Fargate 集群。根据工作负载，您可以将计划程序数量增加到五个。有关 Amazon MWAA 环境类的更多信息，请参阅 [Amazon MWAA 环境类](https://docs.amazonaws.cn/mwaa/latest/userguide/environment-class.html)。

1.  **工作线程**— 运行计划任务的一个或多个 Fargate 任务。环境中的工作线程数量由您指定的*最小*和*最大*数量之间的范围决定。当排队和正在运行的任务数量超过现有工作线程的处理能力时，Amazon MWAA 会开始自动扩缩工作线程。当正在运行且排队的任务总和为零超过两分钟时，Amazon MWAA 会将工作线程数量缩减到最低。有关 Amazon MWAA 如何处理自动扩缩工作线程的更多信息，请参阅 [Amazon MWAA 自动扩缩](https://docs.amazonaws.cn/mwaa/latest/userguide/mwaa-autoscaling.html)。

1.  **Web 服务器**— 运行 Apache Airflow Web UI。您可以将 Web 服务器配置为[私有或公有](https://docs.amazonaws.cn/mwaa/latest/userguide/vpc-vpe-access.html#vpc-vpe-about)网络访问权限。在这两种情况下，您的 Apache Airflow 用户的访问权限都由您在 (IAM) Amazon Identity and Access Management 中定义的访问控制策略控制。有关为环境配置 IAM 访问策略的更多信息，请参阅[访问 Amazon MWAA 环境](https://docs.amazonaws.cn/mwaa/latest/userguide/access-policies.html)。

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

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

![此图显示了 Amazon MWAA 环境的架构。](http://docs.amazonaws.cn/mwaa/latest/migrationguide/images/mwaa-architecture.png)


**注意**  
 服务 Amazon VPC 不是共享 VPC。Amazon MWAA 会为您创建的每个环境创建一个自有的 VP Amazon C。
+  **Amazon S3**— Amazon MWAA 将所有工作流程资源（例如 DAG、要求和插件文件）存储在 Amazon S3 存储桶中。有关创建存储桶作为创建环境的一部分以及上传 Amazon MWAA 资源的更多信息，请参阅*《Amazon MWAA 用户指南》*中的[为 Amazon MWAA 创建 Amazon S3 存储桶](https://docs.amazonaws.cn/mwaa/latest/userguide/mwaa-s3-bucket.html)。
+  **Amazon SQS** — Amazon MWAA 使用 Amazon SQS 将工作流程任务与 [Celery 执行程序](https://airflow.apache.org/docs/apache-airflow-providers-celery/stable/celery_executor.html)一起排队。
+  **Amazon ECR** — Amazon ECR 托管所有 Apache Airflow 镜像。亚马逊 MWAA 仅支持托管的 A Amazon pache Airflow 镜像。
+  **Amazon KMS**— Amazon MWAA 使用 Amazon KMS 来确保您的静态数据是安全的。[默认情况下，Amazon MWAA 使用[Amazon托管密 Amazon KMS 钥](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#aws-managed-cmk)，但您可以将环境配置为使用自己的客户托管密钥。](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#customer-cmk) Amazon KMS 有关使用您自己的客户管理密 Amazon KMS 钥的更多信息，请参阅 *Amazon MWAA* 用户指南中的[数据加密Customer-managed 密钥](https://docs.amazonaws.cn/mwaa/latest/userguide/custom-keys-certs.html)。
+  **CloudWatch**— 亚马逊 MWAA 与 Apache Airflow 日志 CloudWatch 和环境指标集成并 CloudWatch向其提供，允许您监控亚马逊 MWAA 资源并对问题进行故障排除。

## 连接
<a name="networking-requirements"></a>

 您的 Amazon MWAA 环境需要访问与其集成的所有 Amazon 服务。亚马逊 MWAA [执行角色](https://docs.amazonaws.cn/mwaa/latest/userguide/mwaa-create-role.html)控制如何授予亚马逊 MWAA 代表您连接其他 Amazon 服务的访问权限。要实现网络连接，您可以为 Amazon VPC 提供公共互联网访问权限，也可以创建 Amazon VPC 端点。有关为环境配置 Amazon VPC 端点 (Amazon PrivateLink) 的更多信息，请参阅*《Amazon MWAA 用户指南》*中的[在 Amazon MWAA 上管理对 VPC 端点的访问](https://docs.amazonaws.cn/mwaa/latest/userguide/vpc-vpe-access.html)。

 Amazon MWAA 在计划程序和工作线程上安装要求。如果您的需求来自公共[PyPi](https://pypi.org/)存储库，则您的环境需要连接到 Internet 才能下载所需的库。对于私有环境，您可以使用私有 PyPi 存储库，也可以将[`.whl`文件](https://docs.amazonaws.cn/mwaa/latest/userguide/best-practices-dependencies.html)中的库捆绑为环境的自定义插件。

 当您在[私有模式下](https://docs.amazonaws.cn/mwaa/latest/userguide/vpc-vpe-access.html#vpc-vpe-about-private)配置 Apache Airflow 时，Amazon VPC 只能通过Amazon VPC 端点访问 Apache Airflow UI。

 有关联网的更多信息，请参阅*《Amazon VPC 用户指南》*中的[联网](https://docs.amazonaws.cn/mwaa/latest/userguide/networking.html)。