将 AWS RDS aurora 从 Serverless v1 升级到 Serverless v2 后如何删除旧集群

问题描述 投票:0回答:1

我已使用 terraform 将 AWS rds aurora postgress 集群从无服务器 v1 升级到无服务器 v2。

我遵循的步骤:

  1. 创建 Serverless v1 集群的快照
  2. 从该快照创建配置的数据库集群
  3. 创建无服务器数据库实例

下面是我的 terraform 配置:

 resource "aws_rds_cluster" "aurora_rds_serverless_v2" {
   cluster_identifier = "aurora-v2-serverless-cluster-new-197789"
   engine = local.env_config.rds_engine
 }

resource "aws_db_cluster_snapshot" "aurora_rds_db_snapshot" {
  db_cluster_identifier = aws_rds_cluster.aurora.id
  db_cluster_snapshot_identifier = "aurora-rds-db-cluster-snapshot"
}

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"
  depends_on = [aws_db_cluster_snapshot.aurora_rds_db_snapshot]
}

resource "aws_rds_cluster_instance" "aurora_provisioned_instance" {
  cluster_identifier = aws_rds_cluster.aurora_rds_provisioned_db_v2.id
  instance_class = "db.serverless"
}

我的问题是我不能简单地注释掉旧的集群代码,因为快照资源依赖于它。是否有可用于删除旧集群的 terraform 资源?或者我需要在第一次 TF 应用后使快照资源独立吗?

amazon-web-services terraform amazon-rds amazon-aurora
1个回答
0
投票

Terraform 版本
< 1.7.0

您可以按照与此类似的步骤操作:

  1. 使用
    terraform state rm
    命令从 terraform 状态删除快照
  2. 从 IaC 代码中删除快照和实例
  3. 运行地形计划/应用周期。

由于您已从状态和代码中删除了快照,因此在运行计划/应用 Terraform 之前不会将其检测为更改,也不会尝试删除快照。

Terraform 版本
>= 1.7.0

在同一个提交中,执行:

  • 为快照资源添加
    removed
  • 同时删除快照和 v1 实例。 然后,运行计划/应用周期。 Terraform 会自行发现,由于存在
    removed
    块,因此不需要删除快照。

参考文献

© www.soinside.com 2019 - 2024. All rights reserved.