在这篇文章中,我们演示了自动化部署 适用于 Apache Airflow 的 Amazon 托管工作流 (Amazon MWAA) 在 VPC 中使用客户管理的终端节点,提供与共享或其他受限 VPC 的兼容性。
数据科学家和工程师已经做出了 阿帕奇气流 由于其活跃的开源社区、熟悉的有向无环图 (DAG) 工作流程等 Python 开发以及广泛的预构建集成库,它成为创建数据管道的领先开源工具。 Amazon MWAA 是一项针对 Airflow 的托管服务,可让您轻松在 AWS 上运行 Airflow,而无需承担管理底层基础设施的运营负担。 对于每个 Airflow 环境,Amazon MWAA 创建一个单租户服务 VPC,其中托管存储状态的元数据库和提供用户界面的 Web 服务器。 Amazon MWAA 进一步管理客户拥有和管理的 VPC 中的 Airflow 调度程序和工作线程实例,以便调度和运行与客户资源交互的任务。 客户 VPC 中的 Airflow 容器通过以下方式访问服务 VPC 中的资源: VPC 端点.
许多组织选择 集中管理他们的 VPC 运用 AWS组织,允许所有者账户中的 VPC 与不同参与者账户中的资源共享。 但是,由于在 VPC 外部创建新路由被视为特权操作,因此参与者账户无法在所有者 VPC 中创建终端节点。 此外,许多客户不希望将创建 VPC 终端节点所需的安全权限扩展到配置 Amazon MWAA 环境的所有用户。 除了 VPC 端点之外,客户还希望通过以下方式限制数据传出: Amazon Simple Queue服务 (Amazon SQS) 队列,并且 Amazon SQS 访问是以下要求 亚马逊MWAA架构.
对 Amazon MWAA 的共享 VPC 支持增加了您在 VPC 内管理自己的终端节点的能力,从而增加了对共享和其他受限 VPC 的兼容性。 指定客户管理的终端节点还可以通过明确限制 VPC 资源访问仅访问您的 Amazon MWAA 环境所需的资源来满足严格的安全策略。 本文演示了客户管理的终端节点如何与 Amazon MWAA 配合使用,并提供了如何自动配置这些终端节点的示例。
解决方案概述
对 Amazon MWAA 的共享 VPC 支持允许多个 AWS 账户将其 Airflow 环境创建到共享、集中管理的 VPC 中。 拥有 VPC 的账户(所有者)与属于 AWS Organizations 中同一组织的其他账户(参与者)共享 Amazon MWAA 所需的两个私有子网。 共享子网后,参与者可以查看、创建、修改和删除与其共享的子网中的 Amazon MWAA 环境。
当用户在环境创建期间指定需要共享或其他策略限制的 VPC 时,Amazon MWAA 将首先创建服务 VPC 资源,然后进入长达 72 小时的挂起状态,并显示 亚马逊EventBridge 状态改变的通知。 这允许所有者根据来自 Amazon MWAA 控制台或 API 的端点服务信息,或通过编程方式,代表参与者创建所需的端点。 AWS Lambda 函数和 EventBridge 规则,如本文中的示例所示。
在所有者账户上创建这些终端节点后,单租户 Amazon MWAA VPC 中的终端节点服务将检测终端节点连接事件并恢复环境创建。 如果出现问题,您可以通过在此待定状态期间删除环境来取消环境创建。
此功能还允许您删除 创建、修改和删除 VPCE 权限 来自 AWS身份和访问管理 创建 Amazon MWAA 环境的 (IAM) 委托人,即使不使用共享 VPC,因为该权限将改为强加于创建终端节点的 IAM 委托人(我们示例中的 Lambda 函数)。 此外,Amazon MWAA 环境将提供 Airflow Celery Executor 使用的 SQS 队列 Amazon 资源名称 (ARN) 对任务进行排队(Celery Executor 队列),允许您将这些资源显式输入到网络策略中,而不必提供更加开放和普遍的许可。
在此示例中,我们在同一账户中创建 VPC 和 Amazon MWAA 环境。 对于跨账户的共享 VPC,EventBridge 规则和 Lambda 函数将存在于所有者账户中,并且 Amazon MWAA 环境将在参与者账户中创建。 看 在 AWS 账户之间发送和接收 Amazon EventBridge 事件 获取更多信息.
先决条件
您应该具备以下先决条件:
- 一个AWS账户
- 该账户中的 AWS 用户,有权创建 VPC、VPC 终端节点和 Amazon MWAA 环境
- An 亚马逊简单存储服务 该账户中的 (Amazon S3) 存储桶,包含一个名为
dags
创建专有网络
我们首先使用以下方法创建一个限制性 VPC: AWS CloudFormation 模板,以便模拟创建必要的 VPC 终端节点并修改 SQS 终端节点策略。 如果您想使用现有的 VPC,可以继续下一部分。
- 下载 CloudFormation 模板 参考文献 选项三:创建无需访问 Internet 的 Amazon VPC 网络.
- 解压缩文件
cfn-vpc-private-bjs.yml
从下载的 ZIP 存档中。 - 现在,我们编辑 CloudFormation 模板以限制对 Amazon SQS 的访问。 在
cfn-vpc-private-bjs.yml
,编辑SqsVpcEndoint
部分显示如下:
此附加策略文档条目可防止 Amazon SQS 传出至任何未明确列出的资源。
现在我们可以创建 CloudFormation 堆栈。
- 在AWS CloudFormation控制台上,选择 创建堆栈.
- 选择 上载模板文件.
- 选择文件.
- 浏览到您修改的文件。
- 下一页.
- 针对 堆栈名称,输入
MWAA-Environment-VPC
. - 下一页 直到到达评论页面。
- 提交.
创建 Lambda 函数
我们有两种自我管理端点的选项:手动和自动。 在此示例中,我们创建一个响应 Amazon MWAA EventBridge 通知的 Lambda 函数。 您还可以使用 EventBridge 通知来发送 亚马逊简单通知服务 (Amazon SNS) 消息,例如电子邮件,发送给有权手动创建 VPC 终端节点的人员。
首先,我们创建一个 Lambda 函数来响应 Amazon MWAA 将发出的 EventBridge 事件。
- 在Lambda控制台上,选择 创建功能.
- 针对 名称,输入
mwaa-create-lambda
. - 针对 运行时,选择 Python的3.11.
- 创建功能.
- 针对 代码在 源代码 部分,用于
lambda_function
,输入以下代码: - 部署.
- 点击 配置 Lambda 函数的选项卡中 一般配置 部分中,选择 编辑.
- 针对 超时,增加到 5 分 0 秒。
- 保存.
- 在 权限 部分,下 执行角色,选择角色名称即可编辑该功能的权限。
- 针对 权限策略,选择下面的链接 政策名称.
- 编辑 并添加一个逗号和以下语句:
完整的策略应类似于以下内容:
- 下一页 直到到达评论页面。
- 保存更改。
创建 EventBridge 规则
接下来,我们配置 EventBridge 以将 Amazon MWAA 通知发送到我们的 Lambda 函数。
- 在 EventBridge 控制台上,选择 建立规则.
- 针对 名称,输入 mwaa-create。
- 选择 具有事件模式的规则.
- 下一页.
- 针对 创作方法,选择 用户模式形式.
- 编辑花样.
- 针对 事件模式,输入以下内容:
- 下一页.
- 针对 选择目标,选择 拉姆达函数.
您还可以指定 SNS 通知,以便在环境状态发生变化时接收消息s.
- 针对 功能,选择
mwaa-create-lambda
. - 下一页 直到到达最后一部分,然后选择 建立规则.
创建 Amazon MWAA 环境
最后,我们创建一个具有客户管理端点的 Amazon MWAA 环境。
- 在 Amazon MWAA 控制台上,选择 创建环境.
- 针对 名称,为您的环境输入一个唯一的名称。
- 针对 气流版,选择最新的Airflow版本。
- 针对 S3斗,选择 浏览S3 并选择您的 S3 存储桶,或输入 Amazon S3 URI。
- 针对 DAG 文件夹,选择 浏览S3 并选择
dags/
S3 存储桶中的文件夹,或输入 Amazon S3 URI。 - 下一页.
- 针对 虚拟私有云,选择您之前创建的 VPC。
- 针对 网络服务器访问,选择 公共网络(可访问互联网).
- 针对 安全组,取消选择 创建新的安全组.
- 选择由 CloudFormation 模板创建的共享 VPC 安全组。
因为安全组 AWS私有链接 由于上一步中的终端节点是自引用的,因此您必须为您的 Amazon MWAA 环境选择相同的安全组。
- 针对 端点管理,选择 客户管理的端点.
- 其余设置保持默认,然后选择 下一页.
- 创建环境.
当您的环境可用时,您可以通过 打开气流用户界面 Amazon MWAA 控制台上的链接。
清理
清理未积极使用的资源可以降低成本,并且是最佳实践。 如果您不删除资源,可能会产生额外费用。 要清理您的资源,请完成以下步骤:
- 删除你的 亚马逊 MWAA 环境, EventBridge规则及 拉姆达函数.
- 删除 VPC端点 由 Lambda 函数创建。
- 删除任何 安全小组 创建(如果适用)。
- 上述资源删除完成后,删除 CloudFormation堆栈 以确保您已删除所有剩余资源。
总结
本文介绍了如何利用 Amazon MWAA 中的共享 VPC 支持自动创建环境。 这使您能够在 VPC 内管理自己的终端节点,从而增加对共享或其他受限 VPC 的兼容性。 指定客户管理的终端节点还可以通过明确限制 VPC 资源访问仅限其 Amazon MWAA 环境所需的资源来满足严格的安全策略。 要了解有关 Amazon MWAA 的更多信息,请参阅 亚马逊 MWAA 用户指南。 有关 Amazon MWAA 的更多帖子,请访问 亚马逊 MWAA 资源页面.
关于作者
约翰·杰克逊 拥有超过 25 年在初创公司和大型企业担任开发人员、系统架构师和产品经理的软件经验,并且是负责 Amazon MWAA 的 AWS 首席产品经理。
- :具有
- :是
- :不是
- $UP
- 10
- 100
- 11
- 13
- 15%
- 200
- 25
- 41
- 72
- 8
- a
- 对,能力--
- 关于
- 以上
- ACCESS
- 无障碍
- 账号管理
- 账户
- 横过
- 操作
- 要积极。
- 积极地
- 无环
- 加
- 添加
- 增加
- 额外
- 添加
- 后
- 所有类型
- 让
- 允许
- 允许
- 允许
- 已经
- 还
- Amazon
- 亚马逊网络服务
- an
- 和
- 任何
- 阿帕奇
- API
- 出现
- 相应
- 档案
- 保健
- AS
- 自动化
- 自动化
- 自动化
- 可使用
- AWS
- AWS CloudFormation
- 基于
- BE
- 因为
- 开始
- 代表
- 作为
- 最佳
- 之间
- 身体
- 无所畏惧
- 都
- 午休
- 负担
- 但是
- by
- 被称为
- CAN
- 可以得到
- 更改
- 更改
- 收费
- 清洁
- 客户
- 码
- COM的
- 社体的一部分
- 兼容性
- 完成
- 完成
- 地都
- 考虑
- 安慰
- 集装箱
- 上下文
- 企业
- 成本
- 可以
- 创建信息图
- 创建
- 创建
- 创造
- 创建
- 顾客
- 合作伙伴
- DAG
- data
- 数据库
- 默认
- 演示
- 演示
- 部署
- 描述
- 描述
- 细节
- 检测
- 开发商
- 研发支持
- 不同
- 针对
- 文件
- 不
- 别
- 两
- ,我们将参加
- 每
- 此前
- 易
- 效果
- 其他
- 邮箱地址
- 端点
- 端点
- 工程师
- 确保
- 输入
- 条目
- 环境
- 环境中
- 醚(ETH)
- 甚至
- 活动
- 事件
- 例子
- 例子
- 存在
- 现有
- 体验
- 明确地
- 延长
- 广泛
- 熟悉
- 专栏
- 文件
- 过滤
- 最后
- (名字)
- 以下
- 如下
- 针对
- 发现
- 止
- 功能
- 进一步
- 此外
- 得到
- 给
- 图形
- 团队
- 组的
- 有
- 有
- 为了
- HOURS
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- IAM
- ID
- 身分
- if
- 进口
- 征收
- in
- info
- 信息
- 基础设施
- 实例
- 代替
- 集成
- 相互作用
- 接口
- 网络
- 成
- 介绍
- 问题
- IT
- 它的
- JPG
- JSON
- 只是
- 键
- 大
- 最新
- 领导
- 学习用品
- 自学资料库
- 友情链接
- 已发布
- 记录
- 看
- 制成
- 制作
- 管理
- 管理
- 经理
- 管理
- 手册
- 手动
- 许多
- 可能..
- 满足
- 的话
- 分钟
- 改性
- 修改
- 更多
- 多
- 必须
- 姓名
- 必要
- 需求
- 打印车票
- 网络
- 全新
- 下页
- 通知
- 通知
- of
- on
- 打开
- 开放源码
- 操作
- 操作
- 附加选项
- or
- 秩序
- 组织
- 组织
- 其他名称
- 除此以外
- 我们的
- 学校以外
- 超过
- 己
- 业主
- 业主
- 拥有
- 页
- 成員
- 与会者
- 模式
- 有待
- 允许
- 权限
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 政策
- 政策
- 帖子
- 帖子
- 在练习上
- 先决条件
- 防止
- 校长
- 私立
- 特权
- 权限
- 继续
- 产品
- 产品经理
- 提供
- 提供
- 优
- 蟒蛇
- R
- 宁
- 达到
- 接收
- 接收
- 减少
- 参考
- 其余
- 去掉
- 去除
- 必须
- 需求
- 资源
- 资源
- 回应
- 响应
- 提供品牌战略规划
- 限制
- 受限
- 限制
- 限制性
- 简历
- 回报
- 检讨
- 角色
- 路线
- 第
- 运行
- s
- 同
- 始你
- 科学家
- 秒
- 部分
- 保安
- 安全政策
- 看到
- 提交
- 服务器
- 服务
- 特色服务
- 设置
- 共用的,
- 分享
- 应该
- 类似
- 简易
- So
- 软件
- 有人
- 来源
- 堆
- 初创企业
- 州/领地
- 个人陈述
- 州
- Status
- 步
- 步骤
- 存储
- 商店
- 商店
- 严格
- 子网
- 这样
- SUPPORT
- 产品
- 任务
- 模板
- 比
- 这
- 其
- 他们
- 然后
- 那里。
- Free Introduction
- 那些
- 三
- 至
- 工具
- true
- 二
- 类型
- 下
- 相关
- 独特
- 直到
- 更新
- 的URI
- 使用
- 用过的
- 用户
- 用户界面
- 用户
- 运用
- 折扣值
- 价值观
- 版本
- 通过
- 查看
- 参观
- 想
- we
- 卷筒纸
- Web服务器
- Web服务
- ,尤其是
- 这
- 将
- 中
- 也完全不需要
- 工作
- 工人
- 工作流程
- 将
- 年
- 您
- 您一站式解决方案
- 和风网
- 压缩