AWS cli-在一个shell脚本中设置多个连接以连接RDS



我想简化我们的数据库连接。

我们目前通过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"]}'

相关内容

  • 没有找到相关文章

最新更新