Solved: How to configure Terraform backend on AWS S3

Terraform is a very useful tool for IaaS. As you would have already known that it create a .tfstate file to save the status of infra. If you are doing testing you can save the .tfstate locally on your laptop. But, if you are working in prod environment with team then it’s best that you save the .tfstate remotely so that it’s secure and can be used by other team members.

Here we will show you two ways of configuring AWS S3 as backend to save the .tfstate file.

  1. First way of configuring .tfstate is that you define it in the main.tf file. You will just have to add a snippet like below in your main.tf file.
terraform {

      backend "s3" {

          bucket="cloudvedas-test123"

          key="cloudvedas-test-s3.tfstate"

          region="us-east-1"

      }

}

 

Here we have defined following things.

bucket = The S3 bucket in which the .tfstate should be saved

key = The name of the .tfstate file

region = The region in which S3 backend bucket exists.

Father’s Day Sale — courses from $11.99!

 

 

2 Another way of specifying the S3 backend is that you define it when you initialize the terraform using the init command. This can be useful when you want to invoke the terraform from a jenkins file.

  • Here is an example that you can  execute in windows command prompt. This will do the same thing as we did in first example.

 

terraform init -no-color -reconfigure -force-copy -backend-config="region="us-east-1"" -backend-config="bucket="cloudvedas-test123"" -backend-config="key="cloudvedas-test1-win-s3.tfstate""

 

  • If you want to execute from a linux shell use below syntax.
 terraform init -no-color -reconfigure -force-copy \
-backend-config="region=us-east-1" \
-backend-config="bucket=cloudvedas-test123" \
-backend-config="key=cloudvedas-test-s3.tfstate"

 

Give it a try and let us know in comments section if you have any query or suggestion.

Leave a Reply

Your email address will not be published. Required fields are marked *