Backend Configuration
A backend defines where Terraform stores its state data files.
Terraform Backend is a configuration option in Terraform that allows you to store and manage the state of your infrastructure in a remote or local location. The backend is responsible for storing the state file and providing an interface for reading and writing state data.
Available Backends
1.local: The local backend stores state on the local filesystem
terraform {
backend "local" {
path = "relative/path/to/terraform.tfstate"
}
}
create a file - backend.tf and add the below to save the state file locally
terraform {
backend "local" {
path = "C:/srinivas/terraform.tfstate"
}
}
2.S3 :
- Stores the terraform state as a given key in a given bucket on Amazon S3.
- This backend also supports state locking and consistency checking via Dynamo DB, which can be enabled by setting the dynamodb_table field to an existing DynamoDB table name.
- A single DynamoDB table can be used to lock multiple remote state files.
- create a file backend.tf and keep the below mentioned code
terraform {
backend "s3" {
bucket = "bucket_name"
key = "myproject/terraform.tfstate"
region = "eu-west-1"
}
}
Note : You need to replace bucket_name to desired bucket and
"myproject" to the desired folder and terraform.tfstate to be replaced with the desired state file name
3.azurerm : Stores the state as a Blob with the given Key within the Blob Container within the Blob Storage Account.
When authenticating using the Azure CLI or a Service Principal (either with a Client Certificate or a Client Secret):
terraform {
backend "azurerm" {
resource_group_name = "terraform-training"
storage_account_name = "training2024"
container_name = "tfstate"
key = "prod.terraform.tfstate"
}
}
Note : Replace resource group name ,storage account name , container name and key based on your requirement.
Some more backend types in terraform
- remote
- consul
- cos
- gcs
- http
- kubernetes
- oss
- pg
Conclusion : Discussed about terraform backends and will further add more about other backends. Any needs one github samples let me know in the comments will share the github repo link
💬 If you enjoyed reading this blog post and found it informative, please take a moment to share your thoughts by leaving a review and liking it 😀 and follow me in linkedin
Top comments (0)