为 ClickPipes 暴露私有 RDS 的 AWS PrivateLink 设置
设置步骤,通过 AWS PrivateLink 将私有 RDS 暴露给 ClickPipes。
AWS PrivateLink 设置以暴露 ClickPipes 的私有 RDS
设置步骤,通过 AWS PrivateLink 将私有 RDS 暴露给 ClickPipes,同时也支持跨区域访问。
参考
这使用 AWS Endpoint Service,主要适用于跨区域访问。如果您需要同区域访问,建议创建 VPC 资源。
私有链接创建
按照以下步骤为您的 RDS 实例创建 VPC 端点服务。如果您有多个需要端点服务的 RDS 实例(或者您可能有不同实例的不同监听端口),请重复这些步骤。
-
找到您的 VPC 并 创建 NLB
- 导航到您的目标 VPC 并创建一个网络负载均衡器 (NLB)。请注意,NLB 应该是内部 (私有) 的,而不是面向互联网 (公有) 的。
-
配置目标组
- 目标组应指向 RDS 实例的端点 IP 和端口(PostgreSQL 通常为 5432,MySQL 通常为 3306)。
注意如果您希望自动更新目标组中的新 RDS 端点 IP,可以使用 AWS Lambda 函数或其他自动化工具。一个可以用于此目的的 Terraform 模块是 这个。
- 重要提示:如果使用 DB 集群/Aurora,请确保在目标组中使用的是 仅限写入器端点,而不是通用端点。
- 确保使用 TCP 协议以避免 NLB 终止 TLS。
-
设置监听端口
- 负载均衡器的监听端口必须与目标组使用的端口匹配(PostgreSQL 通常为 5432,MySQL 通常为 3306)。
-
创建 VPC 端点服务
- 在 VPC 中,创建一个指向 NLB 的端点服务。
- 启用接受来自特定账户的连接请求。
-
授权 ClickPipes 使用端点服务
- 授予 ClickPipes 账户请求此端点服务的权限。
- 通过添加以下 Principal ID 配置允许的 Principal
- 通过添加以下 Principal ID 配置允许的 Principal
- 授予 ClickPipes 账户请求此端点服务的权限。
-
禁用 NLB 上的“在私有链接流量上强制执行安全组入站规则”(如果 NLB 附加了安全组)
- 导航到 NLB 的设置,如果 NLB 附加了安全组,请禁用“在私有链接流量上强制执行安全组入站规则”设置。
- 如果使用 Terraform,请将 NLB 的
enforce_security_group_inbound_rules_on_private_link_traffic属性设置为off - 此设置 是必需的,以允许来自 ClickPipes VPC 到 NLB 的流量。
-
可选:如果您的数据库区域与 ClickPipes 区域不同,请启用跨区域支持
- 在 VPC 控制台中的
Endpoint Services下,选择您的端点服务。 - 单击
Actions按钮,然后选择Modify supported Regions。 - 添加您希望允许访问端点服务的区域,请参阅此处 获取 ClickPipes 区域列表。
- 在 VPC 控制台中的
-
MySQL 推荐
- 如果您正在使用 MySQL,建议将
skip_name_resolve=1设置为源数据库中的参数。由于 NLB 的重复健康检查,MySQL 会阻止 NLB 主机。设置此参数可以完全避免 DNS 主机名查找,从而永远不会阻止 NLB 主机。如果使用 RDS,这将需要实例重启。
- 如果您正在使用 MySQL,建议将
发起连接
完成后,您可以按照指南 发起连接
一旦控制台上的状态显示为 Ready,您可以按照下一节创建您的 ClickPipe。
创建 ClickPipes
使用从上一步获取的 DNS 名称 创建您的 ClickPipe。
动态更新 RDS 端点 IP
当 RDS 端点 IP 更改时(在重启/故障转移/更新的情况下),您需要使用新的 IP 更新 NLB 目标组。您可以使用 AWS Lambda 函数或其他自动化工具来自动化此过程。
·阅读时间:4 分钟