You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建的RDS实例无法通过DBeaver连接,求排查方案

RDS Postgres实例连接超时排查方案

问题背景

通过以下Terraform代码创建了安全组和RDS Postgres实例,代码执行成功并获取到RDS端点,但使用DBeaver连接时出现超时。安全组已开放5432端口至0.0.0.0/0,暂时未做严格CIDR限制,相同配置他人可正常连接,需排查解决方法。

resource "aws_security_group" "database" {
  name = "DB Host"
  ingress {
    from_port   = 5432
    to_port     = 5432
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}


resource "aws_db_instance" "arapbi" {
  identifier_prefix      = "arapbi"
  engine                 = "postgres"
  allocated_storage      = 10
  instance_class         = "db.t4g.micro"
  db_name                = "arapbi"
  username               = var.db_username
  password               = var.db_password
  vpc_security_group_ids = ["${aws_security_group.database.id}"]
  skip_final_snapshot    = true

  tags = {
    Name = "ARAPBI"
    Tag  = "Managed by Terraform"
  }
}

output "rds_endpoint" {
  description = "The endpoint of the RDS instance"
  value = aws_db_instance.arapbi.endpoint
}

排查及解决步骤

  • 开启RDS公网访问权限:你的Terraform代码未显式设置publicly_accessible = true,AWS RDS默认该参数为false,实例不会分配公网IP,即使安全组开放端口也无法从公网连接。需在aws_db_instance资源块中添加该配置,重新部署后重试。
  • 确认安全组关联状态:登录AWS控制台进入RDS实例详情页,查看「安全组」字段,确认已正确关联你创建的DB Host安全组,避免资源关联错误。
  • 测试本地端口连通性:在本地终端执行telnet <rds-endpoint> 5432或nc -zv <rds-endpoint> 5432,检查本地网络是否允许5432端口的出站流量,排查防火墙、代理或VPN的限制。
  • 检查RDS实例状态:确保RDS实例处于「可用」状态,只有实例完全就绪后才能接受连接,排除创建中、维护中等异常状态的影响。
  • 验证数据库凭证:确认var.db_username和var.db_password的取值正确,连接DBeaver时输入的用户名、密码与实例创建时一致,避免因凭证错误导致的连接异常。

内容的提问来源于stack exchange,提问作者Evan Volgas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:27:23