Zappa + RDS连接问题

时间:2018-08-18 21:19:06

标签: django amazon-web-services amazon-rds zappa

我希望有人可以帮助我解决有关VPC的一些问题。我对AWS来说还很陌生,我只是想构建一个示例Web应用程序,以使自己对所有事情都一清二楚。我一直大致遵循this guide尝试使用Zappa + Django设置基本项目。我已经进入配置VPC并尝试添加Django / zappa可以与之交谈的Postgres实例的状态。根据该文章,我已经像这样建立了我的网络:

  • 连接到VPC的Internet网关
  • 4个公共子网
  • 4个私有子网
  • 两个私有子网中的Lambda函数
  • 在其他2个私有子网中具有子网组的RDS
  • 1个公共子网中的EC2框,允许SSH从我的本地IP转发端口5432到RDS实例

当我尝试使用“ python manage.py makemigrations”在本地计算机上运行迁移时,就会出现问题。我不断收到错误消息,说“服务器是否在主机“ zappadbinstance.xxxxx.rds.amazonaws.com”上运行”(192.168.x.xxx),并在端口5432上接受TCP / IP连接?”。

我不确定我缺少哪一步。我遵循this guidethis post来设置堡垒主机,因为它能够(1)从终端ssh和(2)在本地使用PSequel建立数据库连接,所以我知道它正在运行机。

我觉得我真的很接近,但是我一定想念一些东西。任何帮助或指示,将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先,在进行此设置方面做得很好-这是一个很大的挑战。我同意你的说法,你快到了。由于可以从本地系统与PSequel连接,因此可以从网络角度验证计算机是否已正确连接到VPC RDS。

下一个要查看的区域是Django设置。如果本地计算机的Django设置不正确,则将导致错误。因此,设置文件中的数据库部分在本地计算机上应该是不同的。正如您在上面的评论之一中所述,我相信您有 'HOST': 'xxxxx.us-east-2.rds.amazonaws.com' 运行python manage.py makemigrations时,django尝试使用该主机名并连接到该主机名。不幸的是,这绕过了您精心构建的ssh隧道。

要解决此问题,您可以:

  1. 编辑您的本地settings.py,使其具有'HOST':'127.0.0.1'
  2. 编辑您的/etc/hosts文件以指向上方的FQDN(但我不建议您这样做,因为我经常忘记删除所做的修改)

应该很容易尝试上面的#1,看看是否可行。