Xếp nhiều lớp, vì một lớp không đủ:
hcl
resource "aws_db_instance" "main" {
deletion_protection = true # chan o tang AWS
skip_final_snapshot = false # giu snapshot cuoi
backup_retention_period = 30
lifecycle {
prevent_destroy = true # plan co destroy la fail luon
}
}prevent_destroy làm mọi plan chứa thao tác destroy resource đó fail thay vì chạy. Giới hạn của nó: chỉ chặn ở tầng Terraform, xoá thẳng trên console thì không đỡ được — nên phải có deletion_protection ở tầng AWS.
Hệ quả cần lường trước: khi thật sự cần xoá, phải sửa code gỡ prevent_destroy rồi mới apply. Đó là một bước phiền có chủ đích.
Thêm ở tầng pipeline: parse terraform show -json tfplan và chặn merge nếu có delete trên resource stateful. Kiểm tra đơn giản nhưng ngăn đúng loại sự cố tốn kém nhất.