如何通过SSH将DJANGO应用连接到连接到堡垒的AWS RDS



是否有办法连接Django私有RDS通过SSH连接堡垒

?我目前的AWS基础设施有一个EC2 Bastion公网子网两个私有子网wherepostgres RDS DB驻留。

DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "aaaa",
"USER": "bbbb",
"PASSWORD": "cccc",
"HOST": "xxx.zzz.us-east-z.rds.amazonaws.com", # RDS Endpoint
"PORT": 5432,
}
}

使用终端i可以ssh到堡垒并检查与RDS的连接,OK。

现在我想把上面的Django设置连接到RDS:

  • 我将RDS连接到https://dbeaver.com/软件(结果显示:已连接))
  • 在Django端,当我用AWS RDS凭证编辑上面的settings.py时然后启动djangopython manage.py runserver,收到如下错误:

django.db.utils.OperationalError: could not translate host name "xxx.zzz.us-east-z.rds.amazonaws.com" to address: nodename nor servname provided, or not known.

我的期望是,因为DBeaver软件连接到我的私人RDS,我将能够连接Django到RD实例。(我已将此方法用于公共RDS)

有什么是我错过的方法?

这是DNS问题。如果您使用ip连接,您可能会解决这个问题。

但是如果你需要数据库的名称解析,我建议你也在AWS中运行django,使用私有dns解析。

需要使用putty或SSH客户端创建SSH隧道

https://www.skyverge.com/blog/how-to-set-up-an-ssh-tunnel-with-putty/

然后使用下面的链接连接Djangohttps://gist.github.com/mhulse/1954422

最新更新