如何通过Terraform长期停止AWS Aurora集群?
如何通过Terraform长期停止AWS Aurora区域集群
AWS原生的Aurora集群停止操作(含控制台、API)确实存在7天后自动启动的限制,Terraform的aws_rds_cluster资源也没有直接支持"长期停止"的属性。要实现长期停止直至手动恢复的需求,可行方案是销毁集群的所有运行实例(包括写入实例),但保留集群本身及相关配置、快照——当集群无任何运行的DB实例时,就处于实质停止状态,且不会自动启动。
具体操作步骤如下:
调整Terraform配置
- 先确保
aws_rds_cluster资源配置合理的快照策略,避免数据丢失:resource "aws_rds_cluster" "aurora_cluster" { cluster_identifier = "my-aurora-cluster" engine = "aurora-mysql" engine_version = "8.0.mysql_aurora.3.03.0" master_username = "admin" master_password = "your-password" skip_final_snapshot = false final_snapshot_identifier = "aurora-cluster-stop-snapshot" # 可选,指定停止时的快照名称 # 其他原有配置... } - 注释或删除对应的
aws_rds_cluster_instance写入实例资源(若有只读实例也需一并处理):# resource "aws_rds_cluster_instance" "aurora_writer" { # cluster_identifier = aws_rds_cluster.aurora_cluster.id # instance_class = "db.t3.small" # engine = aws_rds_cluster.aurora_cluster.engine # engine_version = aws_rds_cluster.aurora_cluster.engine_version # # 其他原有配置... # }
- 先确保
执行Terraform命令
运行terraform apply,确认销毁实例的操作,执行完成后Aurora集群将进入无运行实例的状态,实现长期停止。手动恢复集群
当需要恢复时,取消aws_rds_cluster_instance资源的注释(或重新添加该资源配置),再次运行terraform apply,Terraform会重新创建写入实例,集群将恢复运行。
注意事项
- 集群本身不会被销毁,其配置、参数组、子网组、备份策略等都会保留。
- 若未指定
final_snapshot_identifier,AWS会自动生成快照,可根据需求调整快照保留周期。 - 销毁实例前务必确认数据已完成备份,避免意外数据丢失。
内容的提问来源于stack exchange,提问作者MiGo
相关产品推荐
相关产品推荐

