Restoring is a simpler activity and can be done with terraform, the problem I see with custom scripts is maintainability and tribal knowledge. If the team is really good at documenting, script is probably a better choice. But you don't want to end up with a bunch of scripts that future team members are not able to figure out. That being said, maintaining terraform states is also a mess that will come up after you have a bunch of automation in place. Just make sure you account for that, and either of these will work fine.