我如何设置一个代理服务器,它将 SSH 隧道连接到我在 AWS 中的 VPC 中,以便为我建立 Hibernate MySQL 连接?

How do I set up a proxy server that will SSH tunnel into a VPC I have in AWS for a Hibernate MySQL connection for me?

我有一个微服务,我们称之为 RdsConnector,我想在本地测试它通常部署在 AWS 上的机器上。它连接到一个 MySQL 实例,该实例也在 AWS 中,没有任何 SSH 隧道,因为它们在同一个 VPC 中。要从我的本地计算机连接到那个 MySQL 实例,我可以使用 SSH 隧道进入我在 AWS 中设置的 VPC。这是该配置的样子:

我可以将我的微服务设置为也通过 SSH 连接(可能是可选的),但我不想那样做。然后我会有一个不同的配置 运行 它在本地与在云中。我想做的是在我的本地机器上设置某种代理服务器,它将获取 SSH 凭证并执行 SSH 隧道,在本地公开 VPC MySQL 端点。然后 RdsConnector 将只使用该本地端点,我不必为 RdsConnector 进行不同的配置以进行本地测试。

我对这里使用的网络技术不是很熟悉。我只知道我的 VPC 没有 public IP,所以我必须通过 SSH 登录。我想我想要的是可能的,但我不知道移动部件是什么。

好的,事实证明这很简单! 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 端点。