EC2 上的 Django 无法连接到 RDS(相同的 VPC,相同的子网)

EC2 上的 Django 无法连接到 RDS(相同的 VPC,相同的子网)

我在 AWS 上设置了这个环境:

私有云平台:

  • 1 个公共子网
    • 带有 Internet 网关的路由表
  • 2 个私有子网
    • 带 NAT 的路由表

我创建了一个具有私有子网的子网组,并将其附加到我的 RDS Postgres 实例。

我在同一个 vpc(私有子网)中拥有大量 Lambda,它们可以毫无问题地连接到数据库。我在 RDS 安全组上添加了入站规则以允许从 Lambda 安全组进行访问,一切运行正常。

我对托管 Django 应用程序的同一 vpc(私有子网)中的 EC2 执行了同样的事情。EC2 和 RDS 位于同一位置,az 在 RDS 安全组上添加了入站规则,并将 RDS 完全访问(仅用于测试目的)策略添加到 EC2 IAM 角色。

当我启动我的应用程序时,构建规范可以下载包并解析主机,所以我知道我的 nat 正在工作,但是当它运行时:(python manage.py migrate连接到 RDS)它会超时:

django.db.utils.OperationalError: connection to server at "db-postgres-dev-postgresinstance-xxxxxxxx.xxxxxxxx.eu-central-1.rds.amazonaws.com" (x.xx.xx.xxx), port 5432 failed: Connection timed out
    Is the server running on that host and accepting TCP/IP connections?

我的NACLS是默认的,所以不会出现这个问题。

我该如何解决这个问题?

相关内容