我想简化我们的数据库连接。
我们目前通过ec2跳线盒进行本地连接,将跳线盒上的连接转发到rds-db,然后启动一个转发到本地的端口
- 目前我们必须使用2个终端,理想情况下只需要使用1个
# 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.z01241nng2.us-west-2.rds.amazonaws.com"],"portNumber":["12345"], "localPortNumber":["56789"]}'