Terraform
Terraform is a tool for provisioning cloud infrastructure.
Infrastructure is defined in configuration files that represents resources such as cloud components in AWS. Providers are available for most popular deployment environments.
Terraform code is declarative. It defines the desired infrastructure, instead of steps on how it will be achieved.
Terraform persists a copy of the known state of the infrastructure. It uses the known state to compare with the desired state, as defined in code. Terraform will then make changes to the infrastructure only where necessary, e.g. updating a resource instead of recreating.
State can be configured to be stored in S3, on disk, or other places. After a successful terraform apply, the known state will be updated.
Debugging
Turn on logging via the TF_LOG
environment variable. Set it to TRACE, DEBUG or INFO