Terraform Remote State

When using Terraform, I find that storing state
remotely has great benefits.
If you work with others or on multiple machines, remote state allows re-using
Terraform defined infrastructure without copying the state manually to all other
users. More importantly, it allows a “core” set of resources to be defined and owned
by one project while
the root level output resources are re-usable
in other related Terraform projects.

The core infrastructure that I generally have are definitions for DNS zones
(so related projects can import the DNS managed zone identifier and create
subdomains), wildcard SSL certificates for test domains, and general repository
definitions for where the code is stored.

If you have multiple users, you will need to look into remote state locking
solutions as well with your backends,