春季启动mongodb ssh隧道

时间:2019-07-29 17:08:22

标签: spring mongodb amazon-web-services spring-boot ssh-tunnel

我已使用https://docs.aws.amazon.com/quickstart/latest/mongodb/deployment.html处的AWS cloudplatform快速入门创建了mongodb设置。我可以从我的EC2实例成功连接到我,因此已经正确设置了。

由于我需要通过我的spring应用程序连接到它,因此我需要建立一条通过EC2实例到mongodb节点的SSH隧道。

我能找到的唯一相关答案是使用mysql和某种需要模式参数的DataSource对象(我没有,数据库将充满不同种类的实体),所以我不确定如何继续。

我的问题:

  1. 如何设置SSH隧道?如何传递.pem密钥文件?
  2. 我的application.properties与数据库连接的样子如何?

1 个答案:

答案 0 :(得分:0)

我在专用子网中设置了一个堡垒,并使用ssh隧道通过git-bash访问我的MongoDb集群:

〜/ .ssh / config

Host bastion-host-mongo-forward
User ec2-user
Port 22
IdentityFile ~/admin.pem
HostName ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com

Localforward 3307 ip-10-50-2-24.ec2.internal:27017
Localforward 3308 ip-10-50-3-143.ec2.internal:27017
Localforward 3309 ip-10-50-3-103.ec2.internal:27017

启动隧道:

ssh bastion-host-mongo-forward

之后,您可以设置application.yaml并定位uri:

spring:
    profiles: local
    data:
       mongodb:
          uri: mongodb://user:password@localhost:3307,localhost:3308,localhost:3309/databaseName