我希望有人可以帮助我解决有关VPC的一些问题。我对AWS来说还很陌生,我只是想构建一个示例Web应用程序,以使自己对所有事情都一清二楚。我一直大致遵循this guide尝试使用Zappa + Django设置基本项目。我已经进入配置VPC并尝试添加Django / zappa可以与之交谈的Postgres实例的状态。根据该文章,我已经像这样建立了我的网络:
当我尝试使用“ python manage.py makemigrations”在本地计算机上运行迁移时,就会出现问题。我不断收到错误消息,说“服务器是否在主机“ zappadbinstance.xxxxx.rds.amazonaws.com”上运行”(192.168.x.xxx),并在端口5432上接受TCP / IP连接?”。
我不确定我缺少哪一步。我遵循this guide和this post来设置堡垒主机,因为它能够(1)从终端ssh和(2)在本地使用PSequel建立数据库连接,所以我知道它正在运行机。
我觉得我真的很接近,但是我一定想念一些东西。任何帮助或指示,将不胜感激。
答案 0 :(得分:1)
首先,在进行此设置方面做得很好-这是一个很大的挑战。我同意你的说法,你快到了。由于可以从本地系统与PSequel连接,因此可以从网络角度验证计算机是否已正确连接到VPC RDS。
下一个要查看的区域是Django设置。如果本地计算机的Django设置不正确,则将导致错误。因此,设置文件中的数据库部分在本地计算机上应该是不同的。正如您在上面的评论之一中所述,我相信您有
'HOST': 'xxxxx.us-east-2.rds.amazonaws.com'
运行python manage.py makemigrations
时,django尝试使用该主机名并连接到该主机名。不幸的是,这绕过了您精心构建的ssh隧道。
要解决此问题,您可以:
'HOST':'127.0.0.1'
/etc/hosts
文件以指向上方的FQDN(但我不建议您这样做,因为我经常忘记删除所做的修改)应该很容易尝试上面的#1,看看是否可行。