我有一个在 AWS 上运行的 VPC,它是使用 kops 创建的,并且数据库在使用 GCP 作为云提供商的 mongo-atlas 上运行。
mongo 数据库服务器向全世界开放,我想做的是找到一种方法来通过我的 VPC 设置一个 IP 来与数据库通信或获取一系列 IP,或者是否有其他可行的解决方案?
以下是我已经尝试过的方法:
- VPC 对等:由于数据库在 GCP 上运行,因此无法实现
- 将当前正在运行的节点的所有公共 IP 添加到 mongo atls:无法执行此操作,因为我正在使用自动缩放
- 使用弹性 IP,因为我正在使用自动缩放
答案1
你的 AWS 集群真的需要公共 IP 吗?如果你正在使用kops
,那么可能Kubernetes,你应该有私有子网中的工作节点并且只有面向互联网的负载均衡器在具有公共 IP 的公共子网中。
您有几个选择:
VPN在 AWS 和 GCP 之间 - 这将允许您的 AWS 资源通过其私有 IP 与 GCP 资源进行通信。即使您的节点具有公共 IP,这也应该有效。
NAT使用 NAT 网关的出站 AWS 流量,每个 AWS 可用区域一个。
NAT 网关具有固定、弹性 IP然后你就可以白名单在 GCP 方面。
顺便说一句,如果您的工作节点有公共 IP,NAT 可能会有点棘手。您基本上只需要通过 NAT 网关路由的特定地址。例如,如果您的 Mongo 节点有 IP 192.0.2.1 和 192.0.2.100,您的 AWS 路由表将是:
- 192.0.2.1/32 和 192.0.2.100/32 -> NAT 网关
- 0.0.0.0/0 -> IGW(AWS 互联网网关)
我建议您将工作节点移动到私有子网并对所有出站流量使用 NAT,这将使路由和白名单更容易。
希望有帮助:)