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

如何使用Terraform连接不同VPC下的Postgres RDS副本与其源实例

错误根因

你当前在执行跨VPC创建RDS只读副本操作,AWS默认会将副本实例创建在源RDS归属的生产VPC下,你为副本关联了开发VPC的安全组,二者所属VPC不匹配,因此触发报错。

修复步骤
  • 新增开发VPC对应的RDS子网组资源,RDS实例必须绑定归属VPC下的子网组才能部署到对应VPC:
resource "aws_db_subnet_group" "dev_rds_subnet_group" {
  name       = "dev-rds-subnet-group"
  subnet_ids = [aws_subnet.dev-subnet-priv.id]
  # 若需要多AZ部署,可在subnet_ids中添加更多可用区的私有子网ID

  tags = {
    Name        = "dev-rds-subnet-group"
    Environment = "dev"
  }
}
  • 调整aws_db_instance资源配置:移除vpc_security_group_ids参数中生产VPC的安全组ID,新增RDS子网组配置,指定副本创建在开发VPC下:
resource "aws_db_instance" "dev-replica" {
   name                   = "dev-replica"
   identifier             = "dev-replica"
   replicate_source_db    = "arn:aws:rds:us-west-2:9999999999:db:tf-xxxxxxxx"
   instance_class         = "db.t3.small"
   apply_immediately      = false
   publicly_accessible    = false
   skip_final_snapshot    = true
   # 仅保留开发VPC内的私有子网安全组
   vpc_security_group_ids = [aws_security_group.dev-sg-priv.id]
   # 绑定开发VPC的RDS子网组,指定副本部署在开发VPC
   db_subnet_group_name   = aws_db_subnet_group.dev_rds_subnet_group.name
   depends_on = [aws_vpc_peering_connection.dev-peer-conn]
}
  • 完成前置校验,确保跨VPC复制正常运行:
    • 生产VPC需已开启enable_dns_hostnames和enable_dns_support配置
    • 生产VPC中源RDS实例的安全组已放通开发VPC CIDR段(192.168.0.0/16)的5432端口入站规则
    • VPC对等连接已正常激活,双方路由表均已配置对端CIDR的路由规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:06:06