

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

# 配置 Amazon MWAA 环境类
<a name="environment-class"></a>

您为 Amazon MWAA 环境选择的环境类决定了运行 [Celery 执行程序](https://airflow.apache.org/docs/apache-airflow/stable/executor/celery.html)的 AWS 托管 AWS Fargate 容器的大小，以及 Apache Airflow 计划程序在其中创建任务实例的 AWS 托管的 Amazon Aurora PostgreSQL 元数据数据库的大小。本主题描述了每个 Amazon MWAA 环境类，以及如何在 Amazon MWAA 控制台上更新环境类。

**Topics**
+ [环境功能](#environment-class-sizes)
+ [Apache Airflow 计划程序](#environment-class-schedulers)

## 环境功能
<a name="environment-class-sizes"></a>

下一节包含每个环境类的默认并发 Apache Airflow 任务、随机存取存储器（RAM）和虚拟集中处理单元（vCPU）。列出的并发任务假设任务并发性不超过环境中的 Apache Airflow 工作线程容量。

在下表中，DAG 容量是指 DAG 定义数，而不是执行数，并且假设您的 DAG 在单个 Python 文件中是[动态](https://airflow.apache.org/docs/apache-airflow/2.6.3/concepts/dags.html?highlight=dynamic%20dag#dynamic-dags)的，是遵循 [Apache Airflow 最佳实践](https://airflow.apache.org/docs/apache-airflow/2.6.3/best-practices.html?highlight=best%20practices)编写的。

任务执行取决于同时安排了多少任务，并假设设置为同时启动的 DAG 运行次数不超过默认值 [https://airflow.apache.org/docs/apache-airflow/2.6.3/configurations-ref.html#config-scheduler-max-dagruns-per-loop-to-schedule](https://airflow.apache.org/docs/apache-airflow/2.6.3/configurations-ref.html#config-scheduler-max-dagruns-per-loop-to-schedule)，以及本主题中详细介绍的工作线程的大小和数量。

------
#### [ mw1.micro ]
+ 高达 25 DAG 的容量
+ 3 个并发任务（默认）
+ 组件：
  + Web 服务器：1 个 vCPU，3 GB RAM 内存
  + 工作线程和计划程序：1 个 vCPU，3 GB RAM 内存
  + 数据库：2 个 vCPU，4 GB RAM 内存
**注意**  
mw1.micro 不支持自动扩缩。

------
#### [ mw1.small ]
+ 高达 50 DAG 的容量
+ 5 个并发任务（默认）
+ 组件：
  + Web 服务器：每个服务器 1 个 vCPU，2 GB RAM 内存
  + Worker 节点：每个节点 1 个 vCPU，2 GB RAM 内存
  + 调度器：每个调度器 1 个 vCPU，2 GB RAM 内存
  + 数据库：2 个 vCPU，4 GB RAM 内存

------
#### [ mw1.medium ]
+ 高达 250 DAG 的容量
+ 10 个并发任务（默认）
+ 组件：
  + Web 服务器：每个服务器 1 个 vCPU，2 GB RAM 内存
  + Worker 节点：每个节点 2 个 vCPU，4 GB RAM 内存
  + 调度器：每个调度器 2 个 vCPU，4 GB RAM 内存
  + 数据库：2 个 vCPU，8 GB RAM 内存

------
#### [ mw1.large ]
+ 高达 1000 DAG 的容量
+ 20 个并发任务（默认）
+ 组件：
  + Web 服务器：每个服务器 2 个 vCPU，4 GB RAM 内存
  + Worker 节点：每个节点 4 个 vCPU，8 GB RAM 内存
  + 调度器：每个调度器 4 个 vCPU，8 GB RAM 内存
  + 数据库：2 个 vCPU，8 GB RAM 内存

------
#### [ mw1.xlarge ]
+ 高达 2000 DAG 的容量
+ 40 个并发任务（默认）
+ 组件：
  + Web 服务器：每个服务器 4 个 vCPU，12 GB RAM 内存
  + Worker 节点：每个节点 8 个 vCPU，24 GB RAM 内存
  + 调度器：每个调度器 8 个 vCPU，24 GB RAM 内存
  + 数据库：4 个 vCPU，32 GB RAM 内存

------
#### [ mw1.2xlarge ]
+ 高达 4000 DAG 的容量
+ 80 个并发任务（默认）
+ 组件：
  + Web 服务器：每个服务器 8 个 vCPU，24 GB RAM 内存
  + Worker 节点：每个节点 16 个 vCPU，48 GB RAM 内存
  + 调度器：每个调度器 16 个 vCPU，48 GB RAM 内存
  + 数据库：8 个 vCPU，64 GB RAM 内存

------

您可以使用 `celery.worker_autoscale` 来增加每个工作线程的任务数。有关更多信息，请参阅 [高性能用例示例](mwaa-autoscaling.md#mwaa-autoscaling-high-volume)。

## Apache Airflow 计划程序
<a name="environment-class-schedulers"></a>

下一节包含 Amazon MWAA 上可用的 Apache Airflow 计划程序选项，以及计划程序数如何影响触发器数。

在 Apache Airflow 中，[触发器](https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/deferring.html)负责管理由其延迟的任务，直到满足使用触发器指定的特定条件时为止。在 Amazon MWAA 中，触发器与计划程序一起运行相同的 Fargate 任务。增加计划程序计数会相应地增加可用触发器的数量，从而优化环境管理延迟任务的方式。这样可以确保高效处理任务，在条件满足时及时安排任务运行。

------
#### [ Apache Airflow v3 ]
+ **v3** - 对于大于 mw1.micro 的环境，接受从 `2` 到 `5` 的值。除了 mw1.micro 之外，所有环境大小的默认值均为 `2`，而 mw1.micro 默认为 `1`。

------
#### [ Apache Airflow v2 ]
+ **v2** - 对于大于 mw1.micro 的环境，接受从 `2` 到 `5` 的值。除了 mw1.micro 之外，所有环境大小的默认值均为 `2`，而 mw1.micro 默认为 `1`。

------