本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 亚马逊 MWAA 的分担责任模式
本指南适用于亚马逊 MWAA 预置环境。在预置环境中,您可以选择环境类并配置工作器和 Web 服务器的扩展限制。
安全性和合规性是您 Amazon 和您的共同责任。责任共担模型
您负责管理部署到环境的内容。在亚马逊 MWAA 上,该内容包括您的 DAG 代码和您在其中声明的Python依赖关系。requirements.txt它还包括您的自定义插件和您提供的任何启动脚本。您的责任涵盖您选择的配置、网络和权限。您还负责在环境中运行的工作流程的日常操作。亚马逊 MWAA 在您提供的内容时运行您提供的内容。亚马逊 MWAA 不会对其进行检查、验证或修改。
注意
尽管为您的环境 Amazon 运行基础架构,但您的工作流程写入元数据数据库的数据会直接影响服务的执行方式。无限制的元数据增长会降低调度器和 Web 服务器的响应时间。您负责管理环境中的数据量。
那种基础设施 Amazon 管理
我们负责保护在中运行 Amazon 服务的基础架构 Amazon Web Services 云。对于亚马逊 MWAA,这包括以下内容:
-
Apache Airflow 设置 — 亚马逊 MWAA 为您设置 Apache Airflow。它使用与互联网上相同的Apache Airflow用户界面和开源代码。有关更多信息,请参阅 什么是 Amazon Managed Workflows for Apache Airflow?。
-
计算托管组件 — Amazon MWAA 为您的环境预置和运行 Amazon Fargate 计算。该计算运行 Apache Airflow 调度器、工作程序和 Web 服务器。亚马逊 MWAA 还提供和运营 Apache Airflow 元数据数据库。对于每个环境,亚马逊 MWAA 都会创建一个 Amazon 自有的 Amazon VPC 来托管 Web 服务器和元数据数据库。调度程序和工作人员连接到您拥有和配置的环境的 Amazon VPC 中的私有子网。有关更多信息,请参阅亚马逊 MWAA 迁移指南中的探索亚马逊 MWAA 网络架构。
-
Apache Airflow 元数据数据库 — 亚马逊 MWAA 为每个环境配置和运行 Apache Airflow 元数据数据库。您仍对工作流程写入的数据量负责。有关更多信息,请参阅 您管理的卓越运营。
-
版本映像和补丁 — Amazon MWAA 构建容器映像,将 Apache Airflow 版本与其他常见二进制文件和库捆绑在一起。Python亚马逊 MWAA 对这些图像进行了补丁。环境会一直使用其指定的映像版本,直到您发出更新环境操作将其移至更高版本为止。有关更多信息,请参阅 关于 Amazon MWAA 版本。图片定义可在网站上的亚马逊 mwaa-docker-
images 存储库中找到。GitHub -
版本支持生命周期 — 亚马逊 MWAA 发布了每个 Apache Airflow 版本的可用性和终止支持日期。当您账户中的环境运行的版本即将结束 Amazon Health Dashboard 支持时,Amazon MWAA 会通知您。有关当前的支持承诺和日期,请参阅End-of-support 版本。
-
自动扩展托管组件 — Amazon MWAA 根据需求扩展工作人员和 Web 服务器。扩展保持在您配置的限制范围内。您可以选择环境类、工作服务器和 Web 服务器扩展设置以及调度程序数量。有关更多信息,请参阅 配置 Amazon MWAA Worker 节点自动扩缩、配置 Amazon MWAA Web 服务器自动扩缩 和 配置 Amazon MWAA 环境类。
-
数据加密 — Amazon MWAA 对您的静态和传输中的数据进行加密。亚马逊 MWAA 还代表您向客户管理的 KMS 密钥附加所需的授权。有关更多信息,请参阅 Amazon MWAA。
-
指标和日志 — 亚马逊 MWAA 向亚马逊发布环境指标。 CloudWatch亚马逊 MWAA 将您启用的日志类型的 Apache Airflow 日志传送到 CloudWatch 日志。有关更多信息,请参阅 Amazon MWAA 上的监控概述。
-
合规计划 — Third-party 审计师定期测试和验证 Amazon 安全措施的有效性。有关更多信息,请参阅 Amazon MWAA 的合规性验证。
您管理的工作流程代码和内容
您有责任保持对在此基础架构上托管的内容的控制。此内容包括以下内容:
-
DAG 代码 — 您复制到 Amazon S3 存储桶中
dags文件夹的 DAG 定义。您应对这些 DAG 访问的内容及其执行的操作负责。有关更多信息,请参阅 添加或更新 DAG。 -
Python依赖关系 — 您通过将
requirements.txt文件上传到 Amazon S3 存储桶来安装的库。这包括您的工作流程所需的每个软件包的安全性和兼容性。不兼容或资源密集型软件包可能会降低调度程序和工作程序的性能,或阻止容器启动。有关更多信息,请参阅安装 Python 依赖项和在 requirements.txt 中管理 Python 依赖项。 -
自定义插件 — 您上传到 Amazon S3 存储桶的
plugins.zip文件内容。我们建议您在上传文件之前验证文件内容。有关更多信息,请参阅 安装自定义插件。 -
启动脚本 — Amazon MWAA 在启动时在每个组件上运行的 shell 脚本。您还可以为脚本指定 Amazon S3 版本 ID。有关更多信息,请参阅 在 Amazon MWAA 中使用启动脚本。
-
测试 — 在将 DAG、自定义插件和Python依赖项部署到环境之前对其进行验证。我们建议您在开发环境中测试 Apache Airflow 版本升级,然后再将其应用到生产环境中。你可以使用网站上的 ama zon-mwaa-docker-images
容器镜像在本地进行开发和测试。GitHub -
您的 Amazon S3 存储桶及其内容 — 与您的环境相关的存储桶的存储桶策略和对象 ACL。亚马逊 MWAA 不会代表您备份存储桶的内容。如果您的 DAG、插件和需求文件需要灾难恢复状态,我们建议启用版本控制并配置跨区域复制。我们还建议您不要在存储桶中存储其他对象,也不要将该存储桶与其他服务一起使用。
-
您输入的数据 — 我们强烈建议您切勿将机密或敏感信息放入标签或自由格式字段(例如 “名称” 字段)中。
您管理的卓越运营
亚马逊 MWAA 运营托管基础设施。您仍然对在该基础架构上运行的工作流程负责。您部署的代码、依赖关系和配置决定了环境的性能。亚马逊 MWAA 发布描述环境运行状况的指标和日志。解释这些数据、设置警报并根据其报告的内容采取行动是你的责任。
-
监控环境运行状况 — 查看 Amazon MWAA 为您的环境发布的CloudWatch 指标。其中包括容器、队列和数据库指标,可帮助您检测饱和度和降级。有关更多信息,请参阅Amazon MWAA 的监控和指标和Amazon MWAA 的容器、队列和数据库指标。
-
仪表板和警报 — 创建 CloudWatch仪表板和警报,在环境接近极限时通知您。有关更多信息,请参阅 监控 Amazon MWAA 上的控制面板和警报。
-
日志分析 -启用所需的 Apache Airflow 日志类型。然后,您可以分析调度程序、工作人员、Web 服务器和任务日志,以诊断工作流程故障。有关更多信息,请参阅在亚马逊中访问 Airflow 日志 CloudWatch和故障排除: CloudWatch 日志和 CloudTrail 错误。
-
CloudWatch 服务配额 -确保您的账户中的 CloudWatch配额可以处理您的环境产生的日志量。超出 CloudWatch 日志配额(例如)
CreateLogStream可能会导致工作人员降级。有关更多信息,请参阅CloudWatch 日志配额。 -
元数据数据库维护 — 保持 Apache Airflow 元数据数据库的正常运行。定期删除您的工作流程不再需要的元数据。无限制的元数据数据库可能会降低调度器和 Web 服务器的性能。有关更多信息,请参阅 在 Amazon MWAA 环境中清理 Aurora PostgreSQL 数据库。
-
DAG 设计和调度频率 — 您的 DAG 数量、每个 DAG 的任务和计划间隔直接决定托管调度程序的负载。Amazon MWAA 不会限制或拒绝超过环境容量的工作负载。您必须设计 DAG 以适应您配置的资源。
-
任务资源管理 -设置任务级超时、Apache Airflow 池大小和每天 DAG 的并发限制。亚马逊 MWAA 不会代表您强制执行每项任务的保护措施。如果没有这些设置,单个长时间运行或高并发性的 DAG 可能会消耗所有可用工作线程。
-
容量和性能调整 — 选择环境等级、工作线程和 Web 服务器扩展限制以及适合您的工作负载的 Apache Airflow 配置选项。自动扩展在您配置的范围内运行,不会补偿超出环境设计容量的工作负载。必须根据工作负载配置文件调整环境类的大小。有关更多信息,请参阅Amazon MWAA 上的 Apache Airflow 的性能调整和配置 Amazon MWAA 环境类。
-
您通过启动脚本所做的更改 — 启动脚本在环境中的每个组件上运行。它可以更改这些组件的配置。您应对以这种方式所做的更改负责,包括它们对环境稳定性的任何影响。我们建议您在将启动脚本应用于生产环境之前对其进行测试。有关更多信息,请参阅 在 Amazon MWAA 中使用启动脚本。
-
环境更新 -启动环境更新是您的操作。更新会触发容器重启,并可能影响正在运行的工作流程。你有责任选择何时更新并评估对正在进行的任务的影响。我们建议在您选择的时间段内进行更新,此时没有关键 DAG 在运行。要在不暂停和取消暂停 DAG 的情况下进行更新,可以考虑优雅更新,让工作人员在关闭之前完成正在进行的任务。条件和限制适用;有关更多信息,请参阅更新亚马逊 MWAA 环境。
-
First-level 分类 — 在联系 Amazon 支持人员之前,使用可用指标和日志来诊断问题。 Amazon 支持部门可以用来帮助您的详细程度取决于您为环境启用的日志记录级别。
-
Cross-environment 编排 — 协调多个亚马逊 MWAA 环境中的工作流程。如果您使用诸如 Apache Airflow REST API 或外部传感器之类的机制来链接环境,则您应对该协调逻辑负责。
-
遵循 Amazon MWAA 最佳实践 — 应用性能、依赖关系管理和环境配置方面的文档指南。有关更多信息,请参阅 Amazon MMWAA 的最佳实践。
您管理的配置和访问权限
您可以选择如何配置您的环境以及谁可以访问它。您负责执行以下操作:
-
保持最新版本 — 您有责任保持您的亚马逊 MWAA 版本处于最新状态。将环境升级到较新的 Apache Airflow 版本是您启动的操作。有关更多信息,请参阅更改 Apache Airflow 版本和End-of-support 版本。
-
执行角色 — 创建环境后,Amazon MWAA 无法在现有执行角色上添加或编辑权限策略。您必须使用环境所需的额外权限更新执行角色。有关更多信息,请参阅 Amazon MWAA 执行角色。
-
IAM 访问控制 — 决定谁可以访问您的环境和 Apache Airflow 用户界面的策略。仅授予用户所需的资源和操作的权限。有关更多信息,请参阅Amazon Identity and Access Management和访问 Amazon MWAA 环境。
-
Apache Airflow 用户权限 — Apache Airflow 不是多租户。DAG 作者可以编写 DAG 来更改 Apache Airflow 用户权限并与底层元数据数据库进行交互。我们建议拥有 DAG 写入权限的独立团队使用单独的环境。有关更多信息,请参阅 Apache Airflow 中的安全最佳实践。
-
Web 服务器访问模式 — 选择
PUBLIC_ONLY或PRIVATE_ONLY访问 Apache Airflow 用户界面。这是一项安全决策,用于确定是否可以从互联网访问网络服务器端点。有关更多信息,请参阅 Amazon MWAA 上的 VPC 安全。 -
网络配置 — 您的亚马逊 VPC、子网、安全组和网络 ACL。这包括在 NAT 网关上定向流量的入站和出站规则。如果您选择管理自己的 Amazon VPC 终端节点,则应负责创建这些终端节点。有关更多信息,请参阅Amazon MWAA 上的 VPC 安全和在 Amazon MWAA 上管理您自己的 Amazon VPC 端点。
-
加密密钥选择 -使用 Amazon 自有的 KMS 密钥还是客户管理的 KMS 密钥。如果您使用客户管理的 KMS 密钥,则必须将所需的策略声明附加到密钥上。有关更多信息,请参阅 Amazon MWAA。
-
密钥和连接 -您的工作流程使用的证书。我们建议将密钥存储在密钥管理器中。有关更多信息,请参阅 使用配置 Apache Airflow 连接 Amazon Secrets Manager 机密密钥。
-
Apache Airflow 配置选项 -您在环境中覆盖的配置选项。有关更多信息,请参阅 在 Amazon MWAA 上使用 Apache Airflow 配置选项。