我想简化我们的数据库连接。
我们目前通过ec2 Jumpbox进行本地连接,将Jumpbox上的连接转发到rds db,然后启动端口转发到本地
# Login to AWS using SSO
aws sso login
# Connect to the jumpbox shell and forward connection with `socat`
aws ssm start-session --target i-0194fgavc352351cv
sudo socat -d -d TCP4-LISTEN:0,fork TCP4:my-rds-env.z01241nng2.us-west-2.rds.amazonaws.com:12345
# record port that socat outputs: ...listening 0.0.0.0:53859
# new terminal - set "portNumber" to whatever socat outputs
aws ssm start-session --target i-0194fgavc352351cv \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["53859"],"localPortNumber":["44444"]}'
# connect locally to db with localPortNumber
我们可以使用
nohup
命令尝试在一个终端中运行这一切吗?
有没有一种方法可以确保后台进程被正确终止 - IE..如果一个部分终止,其他部分也应该终止,这样就不会有僵尸进程
正如 @Anon Cowards 上面发布的,这可以通过
AWS-StartPortForwardingSessionToRemoteHost
使用 1 个命令:
aws ssm start-session \
--target i-0194fgavc352351cv \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{"host":["my-rds-env.<number>.us-west-2.rds.amazonaws.com"],"portNumber":["12345"], "localPortNumber":["56789"]}'