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

问题描述 投票:0回答:1

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

我们目前通过ec2 Jumpbox进行本地连接,将Jumpbox上的连接转发到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..如果一个部分终止,其他部分也应该终止,这样就不会有僵尸进程

amazon-web-services amazon-ec2 aws-cli
1个回答
0
投票

正如 @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"]}'
© www.soinside.com 2019 - 2024. All rights reserved.