创建 AWS PrivateLink 终端节点服务
当需要使用云器 Lakehouse 访问 AWS VPC 内的服务(如自建 MySQL、PostgreSQL、Kafka 或其他 TCP 服务)时,需要先在 AWS 创建 Endpoint Service,再由 Lakehouse 创建连接该服务的 Endpoint。
该文档对应“Lakehouse → 用户 VPC(Outbound)”场景。AWS PrivateLink 的 Endpoint Service 前端必须使用 Network Load Balancer(NLB);后端可以是 EC2、ECS 或其他由 NLB Target Group 支持的服务。不能直接将 ALB 作为 Endpoint Service 的负载均衡器;如业务入口只有 ALB,请使用 AWS 支持的 NLB 转发到 ALB 的方式。
前提条件
- 已从 Lakehouse“创建终端节点服务”弹窗获取当前服务实例的 Region、可用区以及 Lakehouse AWS 账号主体。
- 目标服务和 NLB 已部署在与 Lakehouse 要求一致的 Region,并且 NLB 在所需可用区具有可用节点。
- 已准备好 NLB Listener、Target Group 和健康检查,且从 NLB 到后端服务的端口已在安全组和网络 ACL 中放行。
- 你的 AWS 账号具有创建 NLB、Endpoint Service 和修改 Allowed principals 的权限。
操作步骤
以下操作需要在 AWS 控制台完成。
-
准备后端服务和内部 NLB。
- 为后端服务创建 Target Group,配置正确的协议、端口和健康检查。
- 创建或选择一个 internal 类型的 Network Load Balancer,并在 Lakehouse 要求的可用区启用 NLB 节点。
- 为 NLB Listener 配置业务端口。建议使用 TCP 或 TLS 透传,TLS 终止位置按业务安全要求决定。
- 确认 NLB Target Group 的目标为
。Endpoint Service 不会绕过 NLB 的健康检查。healthy
-
创建 Endpoint Service。进入 VPC > Endpoint services,单击 Create endpoint service。
- 选择前端负载均衡器类型 Network,勾选上一步创建的 NLB。
- 选择与 Lakehouse 服务实例匹配的 Region 和可用区。
- 建议启用 Acceptance required,由客户在确认来源后再接受连接;如果选择自动接受,必须严格控制 Allowed principals。
- 如果使用自定义 Private DNS Name,只有在完成 AWS 域名所有权验证后才配置;否则使用 Endpoint 连接信息中的 AWS 私网 DNS 名称。
- 单击 Create endpoint service,记录 Endpoint service ID 和 Service name。
-
添加 Lakehouse 账号为允许主体。打开刚创建的 Endpoint Service 详情页,进入 Allowed principals,单击 Allow principals,填入从 Lakehouse 弹窗复制的 AWS 账号主体(通常为
,以 Lakehouse 实际提供的值为准)。不要自行猜测或替换该主体。arn:aws:iam::<account-id>:root -
在 Lakehouse 创建终端节点服务。返回 Lakehouse,在“创建终端节点服务”弹窗中填写 AWS Endpoint Service ID 或 Service Name(按页面字段要求填写),确认 Region、可用区和服务端口后提交。Lakehouse 会在其 VPC 中创建连接该服务的 Interface Endpoint。
-
接受 Endpoint 连接。如果启用了 Acceptance required,进入 AWS VPC > Endpoint services > 对应服务 > Endpoint connections,检查申请来源和账号信息,确认无误后单击 Accept endpoint connection。随后等待连接状态变为
。如果 Lakehouse 页面也显示待确认,请在 Lakehouse 侧完成允许连接操作。Available -
配置后端安全策略和数据源。
- 在后端服务安全组中,仅允许来自 NLB 节点、目标子网或业务安全组的必要端口。AWS PrivateLink 的客户端源地址在后端可能表现为 NLB 或 VPC 内地址,不能只按 Lakehouse 公网 IP 放行。
- 检查 NLB Listener、Target Group 健康状态、路由表和 Network ACL。
- 在 Lakehouse 数据源配置中使用 Endpoint 连接信息提供的私网 DNS 名称和 Listener 端口,不使用后端实例的公网地址。
注意事项
- Endpoint Service 与 Lakehouse Endpoint 通常需要位于同一 Region;跨 Region PrivateLink 是否可用,以 Lakehouse 页面和当前产品能力为准。
- Endpoint Service 的费用、NLB 费用、数据处理费用和跨可用区流量费用由 AWS 账号承担。
- NLB 只支持其 Listener 协议和端口,Endpoint Service 不提供 HTTP 路由或路径级转发能力。
- 如需多个 Lakehouse 环境或多个 AWS 账号访问,请分别添加 Allowed principal,并根据安全要求单独审批每个 Endpoint connection。
