https://github.com/willfarrell/terraform-state-module
Terraform module: Set up state backend using S3 & DynamoDB
https://github.com/willfarrell/terraform-state-module
Last synced: 9 months ago
JSON representation
Terraform module: Set up state backend using S3 & DynamoDB
- Host: GitHub
- URL: https://github.com/willfarrell/terraform-state-module
- Owner: willfarrell
- License: mit
- Created: 2017-12-16T19:30:04.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-06-17T12:45:23.000Z (9 months ago)
- Last Synced: 2025-06-17T13:47:00.900Z (9 months ago)
- Language: HCL
- Size: 21.5 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# terraform-state-module
Terraform module: Set up state backend using S3 & DynamoDB
## Use
`global/init/main.tf`:
```hcl-terraform
variable "name" {
default = "NAME"
}
variable "region" {
default = "us-east-1"
}
variable "profile" {
default = "farrelllabs"
}
provider "aws" {
region = "${var.region}"
profile = "${var.profile}"
}
module "state" {
source = "git@github.com/willfarrell/terraform-state-module"
name = "${var.name}"
}
# Used in backend.s3 block
output "backend_s3_region" {
value = "${var.region}"
}
output "backend_s3_profile" {
value = "${var.profile}"
}
output "backend_s3_dynamodb_table" {
value = "${module.state.dynamodb_table_id}"
}
output "backend_s3_bucket" {
value = "${module.state.s3_bucket_id}"
}
output "backend_s3_bucket_logs" {
value = "${module.state.s3_bucket_logs_id}"
}
```
### Remote State
```hcl-terraform
terraform {
backend "s3" {
bucket = "tfstate-NAME"
key = "vpc/terraform.tfstate"
region = "us-east-1"
profile = "tesera"
dynamodb_table = "tfstate-NAME"
kms_key_id = "arn:aws:kms:us-east-1::key/"
}
}
```
## Inputs
- **name:** Makes name unique tfstate-${name} [Optional]
Ensure `.gitignore` saves these files.
```
# Compiled files
*.tfstate
*.tfstate.backup
!global/init/terraform.tfstate
!global/init/terraform.tfstate.backup
# Module directory
.terraform/
```