Skip to content

Backup and Recovery

S3 versioning provides history and recovery for Terraform state.

S3 Versioning

Every state update creates a new version, allowing recovery from accidental changes or deletion.

Recovering Previous State

List all versions:

aws s3api list-object-versions \
  --bucket <bucket-name> \
  --prefix <key>

Download a specific version:

aws s3api get-object \
  --bucket <bucket-name> \
  --key <key> \
  --version-id <version-id> \
  terraform.tfstate.backup

Restore the version:

terraform state pull > current_state_backup.json
terraform state push terraform.tfstate.backup