SuperAPI AI 工具集

setup-openflow-privatelink

通用与其它

查看项目

更新于 10-16 08:09

技能介绍

用途:把运行在 Snowflake SPCS 上的 OpenFlow 通过 AWS PrivateLink 连接到私有数据源,如 RDS 或经 Direct Connect/VPN 可达的本地数据库。整体链路为 OpenFlow(SPCS) → EAI → 网络规则(PRIVATE_HOST_PORT) → 出站 PrivateLink 终端节点 → AWS VPC 终端节点服务 → 内部 NLB → 目标组 → RDS 或本地数据库(必要时经 TCP 代理)。每个 NLB 监听器使用大于 1024 的唯一端口,以便区分共用同一后端端口的多个实例。

前提条件:具备创建 NLB、目标组、终端节点服务和安全组的 AWS 权限,Snowflake ACCOUNTADMIN 角色,OpenFlow 已部署在 SPCS 上,且存在位于私有 VPC(或经 VPC 连通的本地)的数据源。

主要步骤:先在 AWS 侧创建 IP 类型目标组(每库一个,注册实例私有 IP;本地非 RFC1918 地址需经 TCP 代理 EC2)、内部 NLB(TCP 监听唯一自定义端口并开启跨区负载均衡,设置 dns_record.client_routing_policy=any_availability_zone)、VPC 终端节点服务(保持手动接受)。确认目标健康且 NLB 处于 active 后,用 SYSTEM$GET_PRIVATELINK_CONFIG 获取账户主体 ARN,加入终端节点服务允许主体,执行 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 并在 AWS 接受连接,等待 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 返回 available,再创建 NETWORK RULE 与 EXTERNAL ACCESS INTEGRATION,并在 OpenFlow UI 关联 EAI 后验证。

限制与常见问题:NLB 监听端口必须唯一;VALUE_LIST 中 NLB 域名须为小写;需接受 AWS 终端节点连接并配置主体白名单;RDS 安全组需放行 NLB 安全组;清理须先 Snowflake 后 AWS,避免悬空终端节点。NLB、终端节点服务、PrivateLink 端点及跨区流量均产生 AWS 费用。