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

升级AWS RDS Aurora Serverless v1至v2后,如何用Terraform删除旧集群?

Aurora Serverless v1升级到v2的Terraform配置修正与旧集群删除方案

首先修正你的Terraform配置漏洞:当前aws_rds_cluster.aurora_rds_provisioned_db_v2未指定从快照恢复,会创建空集群,无法继承原v1集群数据,需补充参数:

resource "aws_rds_cluster" "aurora_rds_provisioned_db_v2" {
  cluster_identifier = "aurora-cluster-new-provisioned-v29071"
  engine             = local.env_config.rds_engine
  engine_version     = local.env_config.rds_engine_version
  engine_mode        = "provisioned"
  # 新增:指定从快照恢复数据
  snapshot_identifier = aws_db_cluster_snapshot.aurora_rds_db_snapshot.id
  depends_on         = [aws_db_cluster_snapshot.aurora_rds_db_snapshot]
}

针对旧集群无法删除的问题,按以下步骤操作:

步骤1:剥离快照的Terraform依赖

  1. 执行terraform apply,确保快照aurora-rds-db-cluster-snapshot和新预配置集群完全创建成功。
  2. 运行命令将快照从Terraform状态管理中移除,切断它与旧集群的依赖关联:
    terraform state rm aws_db_cluster_snapshot.aurora_rds_db_snapshot
    

步骤2:删除旧Serverless v1集群

  1. 在配置文件中注释或删除旧集群aws_rds_cluster.aurora以及快照资源aws_db_cluster_snapshot.aurora_rds_db_snapshot的代码。
  2. 再次执行terraform apply,此时Terraform会安全删除旧集群,已无任何资源依赖它。

替代方案(无需手动修改状态)

如果不想执行terraform state rm,可分两次配置迭代:

  • 第一次apply完成后,将新集群的snapshot_identifier硬编码为实际快照名称(如"aurora-rds-db-cluster-snapshot")。
  • 删除旧集群和快照资源的配置代码,执行terraform apply即可完成旧集群删除。

注意:删除旧集群前,务必验证新Serverless v2集群(预配置集群+db.serverless实例)运行正常、数据完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 23:10:00