我有一个微服务,让我们称之为RdsConnector,我想在本地进行测试,通常部署在AWS上的机器上。它连接到MySQL实例,该实例也在AWS中,没有任何SSH隧道,因为它们位于同一个VPC中。要从我的本地计算机连接到该MySQL实例,我可以使用SSH隧道进入我在AWS中设置的VPC。这就是配置的样子:
我可以设置我的微服务也可以通过SSH连接(也许可选),但我不想这样做。那么我会在本地运行它而不是在云中运行它。我想要做的是在我的本地机器上设置某种代理服务器,它将获取SSH凭据并执行SSH隧道,在本地公开VPC MySQL端点。然后RdsConnector将只使用该本地端点,并且我不必为RdsConnector配置不同的配置,仅用于本地测试。
我对这里使用的网络技术不太熟悉。我只知道我的VPC没有公共IP,所以我必须SSH。我想我想要的是可能的,但是我不知道移动部件会是什么。
答案 0 :(得分:0)
好的,事实证明这很简单! ssh
程序可以为您执行此操作,这是我使用Mac OS ssh
配置它的方式:
ssh -N -i "/Users/foo/aws_ssh_key.pem" \
-L "localhost:5990:stack-name-vpc-db.asdfqwerty.us-east-1.rds.amazonaws.com:3306" \
foo@12.34.567.890
使用-L
标志,它将通过SSH连接为您提供从给定端点到另一端提供的端点的代理。 -N
标志是可选的,它只是关闭常规SSH控制台,因为我们只想运行代理服务器。微服务可以将localhost:5990
视为常规MySQL端点。