求助:Terraform创建AWS RDS只读副本失败(自动化备份未启用)
解决Terraform创建RDS只读副本失败的问题
问题原因
AWS RDS只读副本依赖主实例的自动备份功能,示例代码中的主数据库实例默认未配置backup_retention_period或设为0,导致无法创建副本。
修复步骤
- 打开示例项目中定义主RDS实例的TF文件(通常是
main.tf),找到aws_db_instance类型的主实例资源块。 - 在主实例配置中添加或修改
backup_retention_period参数,设置为大于0的数值(例如7,代表保留7天备份),也可按需指定backup_window(备份窗口时间,可选)。
修改后的主实例配置示例:
resource "aws_db_instance" "primary" { identifier = "primary-db" engine = "postgres" engine_version = "13.7" instance_class = "db.t3.micro" allocated_storage = 20 storage_type = "gp2" username = "admin" password = "your-password" parameter_group_name = "default.postgres13" skip_final_snapshot = true # 开启自动备份 backup_retention_period = 7 backup_window = "03:00-04:00" # 可根据时区调整 }
- 重新执行
terraform apply,先完成主实例的配置更新(可能触发短时间重启),之后即可正常创建只读副本。
后续替换为MySQL的注意事项
- 将主实例的
engine改为mysql,engine_version指定合适的MySQL版本(如8.0.33),parameter_group_name替换为对应MySQL的参数组(如default.mysql8.0)。 - MySQL只读副本的创建逻辑与PostgreSQL一致,同样要求主实例开启自动备份(
backup_retention_period设为非0值)。
内容的提问来源于stack exchange,提问作者lemahdois
相关产品推荐
相关产品推荐

