本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Apache Airflow 访问模式
适用于 Apache Airflow 的亚马逊托管工作流程控制台包含内置选项,用于在您的环境中配置到 Apache Airflow 网络服务器的私有路由、公共路由,或者同时配置公共和私有路由。本指南介绍了在 Amazon MWAA 环境中可用的 Apache Airflow Web 服务器的访问模式,以及如果您选择私有网络选项,需要在 Amazon VPC 中配置的其他资源。
目录
Apache Airflow 访问模式
您可以为 Apache Airflow 网络服务器选择私有路由、公共路由,也可以同时选择公共路由和私有路由。要启用私有路由,请选择私有网络。这将用户访问 Apache Airflow Web 服务器的权限限制在 Amazon VPC 内。要启用公有路由,请选择公有网络。这可让用户通过互联网访问 Apache Airflow Web 服务器。要同时启用公用和私有路由,请选择公用和私有网络访问。这允许用户通过互联网访问 Apache Airflow 网络服务器,而工作人员则通过私有 VPC 端点与网络服务器通信。
公有网络
以下架构图描述了带有公有 Web 服务器的 Amazon MWAA 环境。
公有网络访问模式允许拥有环境的 IAM 策略访问权限的用户通过互联网访问 Apache Airflow UI。
重要
如果您的环境使用带有公共网络访问模式的 Apache Airflow 3 或更高版本,则工作人员必须能够通过互联网访问 Web 服务器才能传达任务状态。如果托管工作人员的子网无法访问互联网(例如,没有 NAT 网关的私有子网),DAG 任务将失败。要解决这个问题,请升级到 Apache Airflow 版本 3.2.1 或更高版本,然后切换到公用和私有网络访问模式,该模式通过私有 VPC 端点路由工作人员的通信。
下图描述了在 Amazon MWAA 控制台上哪里可以找到公有网络选项。
私有网络
以下架构图描述了带有私有 Web 服务器的 Amazon MWAA 环境。
私有网络访问模式将访问 Apache Airflow UI 的权限限制为 Amazon VPC 中已获准访问环境 IAM 策略的用户。
创建具有私有 Web 服务器访问权限的环境时,必须将所有依赖项打包到 Python Wheel 档案 (.whl) 中,然后在 requirements.txt 中引用 .whl。有关使用 Wheel 打包和安装依赖项的说明,请参阅使用 Python Wheel 管理依赖项。
下图描述了在 Amazon MWAA 控制台上哪里可以找到私有网络选项。
公网和私网接入
适用于 Apache Airflow 版本 3.2.1 及更高版本。在 Apache Airflow 版本 3 及更高版本中,工作人员通过任务 API 将任务状态传达给网络服务器。如果您的 Amazon VPC 无法访问互联网,工作人员将无法访问公共 Web 服务器,从而导致 DAG 任务失败。此模式既创建了用于浏览器访问 Apache Airflow UI 的公共网络负载均衡器,又创建了用于工作人员到 Web 服务器通信的私有 VPC 端点,允许工作人员在不访问互联网的情况下访问 Web 服务器。有关每个组件,请参阅上面的公用网络和专用网络架构图。
注意
在此模式下,浏览器通过公共网址访问 Apache Airflow 用户界面。私有 VPC 终端节点供工作人员用于内部通信,不用于浏览器访问。
访问模式概述
本节介绍当您选择公共网络、私有网络或公有和私有网络访问模式时,在您的 Amazon VPC 中创建的 VPC 终端节点 (AWS PrivateLink)。
公有网络访问模式
如果您为 Apache Airflow Web 服务器选择了公有网络访问模式,则网络流量将通过互联网公开路由。
-
Amazon MWAA 为 Amazon Aurora PostgreSQL 元数据数据库创建 VPC 接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 AWS 账户。
-
然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。
私有网络访问模式
如果您为 Apache Airflow Web 服务器选择了私有网络访问模式,则网络流量将在 Amazon VPC 内私密路由。
-
Amazon MWAA 为 Apache Airflow Web 服务器创建一个 VPC 接口端点,为 Amazon Aurora PostgreSQL 元数据数据库创建接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 AWS 账户。
-
然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。
公网和私网访问模式
如果您为 Apache Airflow 网络服务器选择了公共网络和私有网络访问模式,则流向 Apache Airflow UI 的网络流量将通过互联网公开路由,而工作人员与网络服务器的通信则在您的亚马逊 VPC 内以私密方式路由。
-
亚马逊 MWAA 为您的 Apache Airflow 网络服务器(用于工作人员连接)创建 VPC 接口终端节点,并为您的 Amazon Aurora PostgreSQL 元数据数据库创建接口终端节点。终端节点是在映射到您的私有子网的可用区中创建的,并且独立于其他 AWS 账户终端节点。
-
然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。
-
Apache Airflow 用户界面可通过公共网络负载均衡器通过互联网访问。用户访问用户界面的方式与使用公共网络访问模式相同。
要了解更多信息,请参阅 Amazon VPC 和 Apache Airflow 访问模式的示例用例。
访问模式的设置
下一节根据您为环境选择的 Apache Airflow 访问模式,介绍了您需要的其他设置和配置。
公有网络设置
如果您为 Apache Airflow Web 服务器选择公有网络选项,则可以在创建环境后开始使用 Apache Airflow UI。
您需要采取以下步骤来配置用户的访问权限以及您的环境使用其他 AWS 服务的权限。
-
添加权限。亚马逊 MWAA 需要获得许可才能使用其他 AWS 服务。在您创建环境时,Amazon MWAA 会创建一个服务相关角色,允许其对亚马逊弹性容器注册表 (Amazon ECR)、日志和亚马逊 EC CloudWatch 2 使用某些 IAM 操作。
您可以添加对这些服务使用其他操作的权限,也可以通过向执行角色添加权限来使用其他 AWS 服务。要了解更多信息,请参阅 Amazon MWAA 执行角色。
-
创建用户策略。您可能需要为用户创建多个 IAM 策略,以配置对环境和 Apache Airflow UI 的访问权限。要了解更多信息,请参阅 访问 Amazon MWAA 环境。
私有网络的设置
如果您为 Apache Airflow Web 服务器选择 “专用网络” 选项,则需要配置用户的访问权限、您的环境使用 AWS 其他服务的权限,并创建从您的计算机访问 Amazon VPC 中资源的机制。
-
添加权限。亚马逊 MWAA 需要获得许可才能使用其他 AWS 服务。在您创建环境时,Amazon MWAA 会创建一个服务相关角色,允许其对亚马逊弹性容器注册表 (Amazon ECR)、日志和亚马逊 EC CloudWatch 2 使用某些 IAM 操作。
您可以添加对这些服务使用其他操作的权限,也可以通过向执行角色添加权限来使用其他 AWS 服务。要了解更多信息,请参阅 Amazon MWAA 执行角色。
-
创建用户策略。您可能需要为用户创建多个 IAM 策略,以配置对环境和 Apache Airflow UI 的访问权限。要了解更多信息,请参阅 访问 Amazon MWAA 环境。
-
启用网络访问。您需要在 Amazon VPC 中创建一个机制来连接到 Apache Airflow Web 服务器的 VPC 端点 (AWS PrivateLink)。例如,通过使用 AWS Client VPN从计算机创建 VPN 隧道。
为公用和私有网络访问进行设置
如果您为 Apache Airflow Web 服务器选择公用和私有网络访问选项,则可以在创建环境后开始使用 Apache Airflow 用户界面。浏览器访问不需要 VPN 或 VPC 终端节点访问机制。Apache Airflow 用户界面可通过互联网访问。工作人员通过私有 VPC 终端节点自动连接到 Web 服务器。
您需要采取以下步骤来配置用户的访问权限以及您的环境使用其他 AWS 服务的权限。
-
添加权限。亚马逊 MWAA 需要获得许可才能使用其他 AWS 服务。在您创建环境时,Amazon MWAA 会创建一个服务相关角色,允许其对亚马逊弹性容器注册表 (Amazon ECR)、日志和亚马逊 EC CloudWatch 2 使用某些 IAM 操作。
您可以添加对这些服务使用其他操作的权限,也可以通过向执行角色添加权限来使用其他 AWS 服务。要了解更多信息,请参阅 Amazon MWAA 执行角色。
-
创建用户策略。您可能需要为用户创建多个 IAM 策略,以配置对环境和 Apache Airflow UI 的访问权限。要了解更多信息,请参阅 访问 Amazon MWAA 环境。
访问 Apache Airflow Web 服务器的 VPC 端点(私有网络访问)
如果您选择了私有网络选项,则需要在 Amazon VPC 中创建一个机制来访问 Apache Airflow Web 服务器的 VPC 端点 (AWS PrivateLink)。对于这些资源,我们建议使用与 Amazon MWAA 环境相同的 Amazon VPC、VPC 安全组和私有子网。
如果您选择了同时访问公用和私有网络,则无需创建访问 Apache Airflow 用户界面的机制。它可以通过互联网访问。工作人员会自动使用私有 VPC 终端节点进行内部通信。
要了解更多信息,请参阅管理 VPC 端点的访问。