利用 PrivateLink 通过 VPC 网络同步 RDS 数据(阿里云)
1. 适用场景:
Lakehouse Studio 数据集成通过 VPC 网络同步 RDS 的数据,解决公网传输带来的如下问题:
- 数据延迟高
- 公网流量成本高
- 不安全 / 不合规
2. 历史的方案优缺点总结:
- 纯 Private link 方案不支持连接 RDS 实例,只支持 ECS 上自建的 MySQL
- VPC Peering 验证走通:但是暴露双方内网环境,有安全风险不建议用
- 通过 IGS SDK 走 private link 推到 LH 支持:但是导入调度策略客户自己负责,没法集成到 workflow 中
- 纯 SSH TUNNEL 需要中间一段需要走公网,能解 RDS 暴露公网的安全问题,但是不能解决公网流量问题
3. 方案简介:
该总体来说,就是 Private link + SSH Tunnel 方式结合的方案
网络架构图:
(客户环境也可在同region 的其它 AZ)
默认是终端节点侧承担开销,计费项有两个:参考 计费规则
4. 配置方法:
Step0:环境:
客户侧环境:
- VPC:杭州 H:专有网络 VPC_Customr:
vpc_lakehouse /
vpc-bp1qmyayneio4mlyoyeb7,网段:172.16.0.0/12
- RDS:杭州 H:私网地址:`` (
rm-bp15gq963ic327h8f.mysql.rds.aliyuncs.com
) - ECS:杭州 H:私网 IP 地址
172.16.12.182
Lakehouse 侧:
CZ Studio UAT 环境数据集成 EMR 集群所在 VPC 和 VWS:杭州 H
SQL vpc-bp1jvn***********u vsw-bp1rp************cii |
---|
CZ UAT 环境阿里云主账号:138************83
Step1:客户侧:在 ECS 上创建 SSH 端口转发
在客户网络环境中创建与 RDS 互通的ECS, 在此机器上创建端口转发:访问该 ECS 的12345 端口,会被转发到 RDS 的 3306 端口
Step 2:创建负载均衡 CLB
- 进入负载均衡 SLB 控制台 -> 左侧 传统负载均衡 CLB(原SLB)-> 创建传统型负载均衡
- 创建监听如下:
- 在 tab 默认服务器组 中添加 Step0 中的 ECS,前端端口为22(自定义),后端端口为转发到 RDS 的端口,本案例中是 12345
Step 3:客户侧:创建终端节点服务
- 进入 VPC 控制台,选择与 CZ 数据集成集群相同 Region, 左侧 终端节点服务 -> 创建终端节点服务
- 服务资源类型 -> 传统型负载均衡 CLB(与 Step1 一致),选择可用区 **杭州 可用区H,**在下拉框中选择 step1 中创建的 CLB 实例,自动接收断点连接 YES,其它默认
- 进入该终端节点服务:在 服务白名单 中,添加云器环境主账号:
1384322691904283
Step 4:Lakehouse 侧创建终端节点
- 进入 VPC 控制台,选择与 CZ 数据集成集群相同 Region, 左侧 终端节点
- 在终端节点服务中,会自动发现 Step2 中的终端节点服务,选择对应 专有网络 后,确定创建;
- 在用户侧和CZ 侧的终端节点服务和终端节点的终端节点连接中,可以获取域名
验证:
Lakehouse Studio 数据集成:
Jdbc URL:jdbc:mysql://ep-bp1iabb21a27719ca8a2-cn-hangzhou-h.epsrv-bp1n7rvc8qbpudxk69fr.cn-hangzhou.privatelink.aliyuncs.com:22/mysql
``
终端节点服务绑定 CLB 的监听端口为22,后端绑定 ECS 资源的端口为12345;
MySQL 控制台:
数据集成验证:导入成功