Introduction
When managing cloud resources, you can tell the system what you want (declarative) or how to do it step-by-step (imperative). Terraform uses the declarative way, which means you describe the desired state and it figures out the steps to get there.
When you want to create or update cloud resources by describing what they should look like, not how to create them.
When you want your infrastructure setup to be easy to read and maintain by others.
When you want to avoid mistakes from manual step-by-step commands.
When you want to track changes to your infrastructure over time.
When you want to automate cloud resource management safely and predictably.