如何为 JDBC 资源设置跨账户 AWS Glue 任务?

2 分钟阅读
0

我想要设置一个 AWS Glue 任务让我能够在两个 JDBC 数据存储之间移动数据。但是,数据存储存在于不同的 AWS 账户中。

概述

要允许在不同 AWS 账户中的 AWS Glue 数据存储之间移动数据,您必须设置跨账户 AWS Glue 连接。

如需设置跨账户 AWS Glue 连接,请使用下列方法:

解决方法

使用 VPC 对等连接

如果在私有设置中使用 Amazon Relational Database Service(Amazon RDS)数据库实例,请使用 VPC 对等连接来设置跨账户连接。

注意: 如果需要在 JDBC URL 中指定跨账户 JDBC 数据库的主机名,请为 VPC 对等连接启用 DNS 解析。如果未启用此选项,因为无法解析提供的主机名,AWS Glue 连接会失败。仅传递私有 IP 地址不会导致连接失败。有关详细信息,请参阅为 VPC 对等连接启用 DNS 解析

1.    在账户 A 和账户 B 之间创建 VPC 对等连接。

  • 准备 VPC——两个 VPC 必须属于同一 AWS 账户或 AWS Organizations 内的不同账户。VPC 必须位于同一 AWS 区域并具有唯一 IP 地址空间。
  • 请求 VPC 对等连接——从您想要与账户 A 中的 VPC 对等连接的账户 B 中的 VPC 打开 VPC 控制面板。请选择对等连接,然后选择创建 VPC 对等连接。选择账户 A 的 VPC,然后配置 VPC 对等连接。
  • 接受对等互连请求——账户 A 的所有者接收对等请求电子邮件通知。要接受请求,账户 A 的所有者必须登录该账户,然后导航到 VPC 控制面板。
  • 向对等 VPC 添加路由——在建立对等连接后,请在 VPC 子网的路由表中添加指向对等 VPC 的路由。此路由指定对等 VPC 的 IP 地址范围。
  • 测试连接——如需测试连接,请在每个 VPC 中启动一个实例。验证实例是否能使用其私有 IP 地址相互通信。

**注意:**要保护 VPC 对等连接,请使用网络访问控制列表(ACL)或安全组来限制 VPC 之间的流量。此外,VPC 对等连接不允许不同 VPC 中的实例使用公有 IP 地址相互通信。

2.    创建您的 AWS Glue 连接。在 AWS Glue Studio 中,选择创建连接。添加所有必需的连接属性连接访问详细信息,然后选择创建连接

3.    在 Amazon RDS 安全组中,向入站规则添加一条允许您的 AWS Glue 子网的 IPV4 CIDR 的规则。

使用 NAT 网关

使用此方法连接并读取可公开访问且附加了公有 IPV4 地址的 JDBC 资源。为此,请创建与在账户 A 中具有 NAT 网关的 AWS Glue 私有子网的 JDBC 连接。

注意: 要使 VPC 流量到达数据源,NAT 网关必须能够将流量路由到互联网网关。

1.    创建您的 AWS Glue 连接。在 AWS Glue Studio 中,选择创建连接。添加所有必需的连接属性连接访问详细信息,然后选择创建连接

2.    在数据库安全组的入口规则中,允许在数据库的相应端口中使用账户 A 的 NAT 网关的弹性 IP 地址。对于 Amazon RDS,请使用 3306。对于 Amazon Redshift,请使用 5439,对于 Amazon RDS for PostgreSQL,请使用 5432

3.    在账户 A 和账户 B 的此设置完成后,请测试连接。如果连接成功,请在 AWS Glue 中运行您的提取、转换、加载(ETL)任务。

检查您是否能访问 JDBC 数据源

检查您是否能从 AWS Glue 连接的子网访问 JDBC 数据源。启动一个 Amazon Elastic Compute Cloud(Amazon EC2)实例,通过 SSH 访问您在连接中使用的相同子网和安全组。然后,使用 SSH 连接到实例,并运行下列命令来测试连接。

$ dig hostname
$ nc -zv hostname port

相关信息

AWS Glue 中 ETL 的连接类型和选项

连接到 VPC 中的 JDBC 数据存储

AWS 官方
AWS 官方已更新 1 年前