postgresql 为什么我不能从我的电脑连接到我的aurora postgres示例?

anauzrmj  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(127)

我最初的计划是在aws上建立一个无服务器的aurora postgres数据库来省钱,因为我需要一些东西在开发环境中使用,我们可以从本地机器连接到它。在发现你不能拥有一个可公开访问的aurora无服务器postgres示例(AWS Aurora MySQL serverless: how to connect from MySQL Workbench)后,我决定选择一个db.t3.medium on demand示例。我使用以下terraform创建了它:

resource "aws_rds_cluster" "operational_postgresql" {
  cluster_identifier      = "aurora-postgres-cluster-dev"
  engine                  = "aurora-postgresql"
  engine_version            = "14.3"
  availability_zones      = ["eu-west-1a", "eu-west-1b", "eu-west-1c"]
  database_name           = "operational_db"
  master_username         = "XXXXXX"
  master_password         = "XXXXXX"
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
  skip_final_snapshot = false
  final_snapshot_identifier = "aurora-postgres-dev-cluster-backup"

}

resource "aws_rds_cluster_instance" "operational_postgresql_db_dev" {
  cluster_identifier = aws_rds_cluster.operational_postgresql.id
  instance_class     = "db.t3.medium"
  engine             = aws_rds_cluster.operational_postgresql.engine
  engine_version     = aws_rds_cluster.operational_postgresql.engine_version
  publicly_accessible = true
}

并已验证群集具有写入器示例和读取器示例。我还验证了集群位于一个vpc内部,该vpc连接到一个internet gateway(它是默认的aws vpc,因为terraform中没有指定)。但是,当我尝试从自己的机器上用psycopg2调用这个数据库时,我得到以下错误:

*sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "aurora-postgres-cluster.cluster-XXXXXXXXX.eu-west-1.rds.amazonaws.com" (52.XXX.XXX.XXX), port 5432 failed: Operation timed out
        Is the server running on that host and accepting TCP/IP connections?*

任何帮助将不胜感激。

8wigbo56

8wigbo561#

Aurora集群中的每个示例都有一个关联的“安全组”。安全组是您需要说明允许IP地址某某(或IP范围)连接到端口某某的地方。然后,您可以在任意多个示例中使用相同的安全组。您可以从EC2控制台找到安全组列表。
在安全组中,有一个选项可以自动填写您自己的当前IP作为允许连接的地址。我发现有时通过VPN时,它不会选择它应该使用的地址。对我来说最可靠的是从curl --silent ifconfig.me返回的任何内容。

相关问题