Как настроить прокси-сервер, который будет туннелировать SSH в VPC, который у меня есть в AWS, для подключения Hibernate MySQL для меня? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть микросервис, назовем его RdsConnector, я хочу провести локальное тестирование, которое обычно развертывается на машине в AWS. Он подключается к экземпляру MySQL, который также находится в AWS, без туннелирования SSH, поскольку они находятся в одном и том же VPC. Чтобы подключиться к этому экземпляру MySQL с моего локального компьютера, я могу использовать туннелирование SSH, чтобы войти в VPC, который я настроил в AWS. Вот как выглядит эта конфигурация:

ssh tunneling config

Я мог бы настроить свой микросервис на подключение через SSH (опционально, возможно), но я не хочу этого делать. Тогда у меня была бы другая конфигурация, выполняющая это локально против облака. Вместо этого я хочу настроить на моем локальном компьютере какой-нибудь прокси-сервер, который будет принимать учетные данные SSH и выполнять туннелирование SSH, открывая локальную конечную точку VPC MySQL. Тогда RdsConnector будет просто использовать эту локальную конечную точку, и мне не нужно будет иметь другую конфигурацию для RdsConnector только для локального тестирования.

Я не очень знаком с используемыми здесь сетевыми технологиями. Я просто знаю, что для моего VPC нет общедоступных IP-адресов, поэтому я должен войти в SSH. Я представляю, что то, что я хочу, возможно, но я не знаю, какими будут движущиеся части.

1 Ответ

0 голосов
/ 10 мая 2018

Хорошо, это оказалось довольно просто! Программа 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.

...