Zappa + RDS 连接问题

Zappa + RDS Connection Issues

我希望有人能帮我解决一些关于 VPC 的问题。我是 AWS 的新手,我只是想构建一个示例 Web 应用程序来熟悉所有内容。我一直在大致按照 this guide 尝试使用 Zappa + Django 设置一个基本项目。我已经到了配置 VPC 并尝试添加 Django/zappa 可以与之通信的 Postgres 实例的状态。根据那篇文章,我已经像这样设置了我的网络:

当我尝试使用 "python manage.py makemigrations" 在我的本地计算机上 运行 迁移时,我的问题就出现了。我不断收到一条错误消息,显示 "Is the server running on host "zappadbinstance.xxxxx.rds.amazonaws.com" (192.168.x.xxx) 并在端口 5432 上接受 TCP/IP 连接?"。

我不确定我错过了哪一步。我按照 this guide and this post 设置堡垒主机,我知道它正在工作,因为我能够 (1) 从我的终端 ssh 和 (2) 在我的本地机器上使用 PSequel 建立数据库连接。

我觉得我真的很接近,但我一定错过了什么。任何帮助或指点将不胜感激。

首先,这项设置做得很好 - 这是一个相当大的挑战。我同意你的看法,你快到了。由于您可以从本地系统连接 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 应该很容易,看看是否可行。