使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点 - Amazon Managed Workflows for Apache Airflow

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

使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点

无法互联网访问的现有 Amazon VPC 网络需要额外的 VPC 服务端点(AWS PrivateLink)才能在 Amazon MWAA 上使用 Apache Airflow。本页介绍了 Amazon MWAA 使用的 AWS 服务所需的 VPC 终端节点、Apache Airflow 所需的 VPC 终端节点,以及如何使用私有路由创建 VPC 终端节点并将其连接到现有亚马逊 VPC。

定价

私有网络和私有路由

此图显示了带有私有 Web 服务器的 Amazon MWAA 环境的架构。

私有网络访问模式将访问 Apache Airflow UI 的权限限制为 Amazon VPC 中已获准访问环境 IAM 策略的用户。

创建具有私有 Web 服务器访问权限的环境时,必须将所有依赖项打包到 Python Wheel 档案 (.whl) 中,然后在 requirements.txt 中引用 .whl。有关使用 Wheel 打包和安装依赖项的说明,请参阅使用 Python wheel 管理依赖项

下图显示了在 Amazon MWAA 控制台上哪里可以找到私有网络选项。

此图显示了在 Amazon MWAA 控制台上哪里可以找到私有网络选项。
  • 私有路由无法互联网访问的 Amazon VPC 会限制 VPC 内的网络流量。本页假设您的亚马逊 VPC 无法访问互联网,并且您的环境使用的每项 AWS 服务都需要 VPC 终端节点,Apache Airflow 需要与您的亚马逊 MWAA 环境位于同一 AWS 区域和亚马逊 VPC 中。

(必需)VPC 端点

下一节显示了无法访问互联网的 Amazon VPC 所需的 VPC 端点。它列出了亚马逊 MWAA 使用的每项 AWS 服务的 VPC 终端节点,包括 Apache Airflow 所需的 VPC 终端节点。

com.amazonaws.YOUR_REGION.s3 com.amazonaws.YOUR_REGION.monitoring com.amazonaws.YOUR_REGION.ecr.dkr com.amazonaws.YOUR_REGION.ecr.api com.amazonaws.YOUR_REGION.logs com.amazonaws.YOUR_REGION.sqs com.amazonaws.YOUR_REGION.kms com.amazonaws.YOUR_REGION.airflow.api com.amazonaws.YOUR_REGION.airflow.env com.amazonaws.YOUR_REGION.airflow.ops

连接所需的 VPC 端点

本节介绍为使用私有路由的 Amazon VPC 连接所需的 VPC 端点的步骤。

AWS 服务所需的 VPC 终端节点

以下部分显示了将环境使用的 AWS 服务的 VPC 终端节点连接到现有 Amazon VPC 的步骤。

将 VPC 端点连接到私有子网
  1. 打开 Amazon VPC 控制台的 端点页面

  2. 使用 AWS 区域选择器选择您的区域。

  3. 创建 Amazon S3 网关端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.s3,然后按键盘上的 Enter

    3. 我们建议为网关类型选择列出的服务端点。

      例如,com.amazonaws.us-west-2.s3 amazon Gateway

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并通过选择启用 DNS 名称来启用该私有 DNS。

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  4. 为 Amazon ECR 创建第一个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.ecr.dkr,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  5. 为 Amazon ECR 创建第二个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.ecr.api,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  6. 为 CloudWatch 日志创建终端节点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.logs,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  7. 创建用于 CloudWatch 监控的终端节点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.monitoring,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  8. 为 Amazon SQS 创建端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.sqs,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  9. 为以下对象创建终端节点 AWS KMS:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.kms,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

Apache Airflow 所需的 VPC 端点

下一节显示了将 Apache Airflow 的 VPC 端点连接到现有 Amazon VPC 的步骤。

将 VPC 端点连接到私有子网
  1. 打开 Amazon VPC 控制台的 端点页面

  2. 使用 AWS 区域选择器选择您的区域。

  3. 为 Apache Airflow API 创建端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.api,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  4. 为 Apache Airflow 环境创建第一个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.env,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

  5. 为 Apache Airflow 操作创建第二个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.ops,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

    5. 确保选择了位于不同可用区的两个私有子网,并启用启用 DNS 名称

    6. 选择环境的 Amazon VPC 安全组。

    7. 策略中选择完全访问权限

    8. 选择创建端点

(可选)为 Amazon S3 VPC 接口端点启用私有 IP 地址

Amazon S3 接口端点不支持私有 DNS。S3 端点请求仍会解析为公有 IP 地址。要将 S3 地址解析为私有 IP 地址,您需要在 Route 53 中为 S3 区域端点添加私有托管区

使用 Route 53

本节介绍使用 Route 53 为 S3 接口端点启用私有 IP 地址的步骤。

  1. 为 Amazon S3 VPC 接口端点(例如 s3.eu-west-1.amazonaws.com)创建私有托管区并将其与 Amazon VPC 关联。

  2. 为 Amazon S3 VPC 接口端点(例如 s3.eu-west-1.amazonaws.com)创建别名 A 记录,该记录可解析为 VPC 接口端点 DNS 名称。

  3. 为 Amazon S3 接口端点(例如,*. s3.eu-west-1.amazonaws.com)创建一个别名 A 通配符记录,该记录可解析为 VPC 接口端点 DNS 名称。

带有自定义 DNS 解析

如果 Amazon VPC 使用自定义 DNS 路由,则需要通过创建别名记录在 DNS 解析器(不是 Route 53,通常是运行 DNS 服务器的 EC2 实例)中进行更改。例如:

Name: s3.us-west-2.amazonaws.com Type: CNAME Value: *.vpce-0f67d23e37648915c-e2q2e2j3.s3.us-west-2.vpce.amazonaws.com