v1.0.0 cosmicstack-labs
Terraform / Infrastructure as Code
State management, modules, workspaces, remote backends, and multi-environment strategies
View source0 downloads
terraformiacinfrastructureclouddevops
Terraform / Infrastructure as Code#
Manage infrastructure with Terraform.
Core Concepts#
State Management#
- Store state remotely (S3, Terraform Cloud)
- Enable state locking (DynamoDB)
- Never edit state manually (use
terraform statecommands) - Isolate environments with workspaces or directories
Structure#
terraform/
├── modules/
│ ├── networking/
│ ├── compute/
│ └── database/
├── environments/
│ ├── dev/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── terraform.tfvars
│ ├── staging/
│ └── production/
└── backend.tfModule Design#
Module Interface#
# modules/compute/main.tf
variable "instance_type" { type = string }
variable "subnet_id" { type = string }
output "instance_id" { value = aws_instance.app.id }Module Best Practices#
- Input validation (type constraints, validation blocks)
- Outputs for all useful values
- Versioned modules (Git tags, registry)
- Documentation (README per module)
- Test with Terratest
Remote Backend#
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "production/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
encrypt = true
}
}Multi-Environment Strategy#
- Workspaces: Simple, state separation only
- Directory structure: Full isolation, can diff configs
- Terragrunt: DRY config, repeatable structure
- Always: Plan in CI, approve, then apply
- No manual applies in production
More in DevOps
View all →DevOpsv1.0.0
CI/CD Pipeline Design: From Commit to Production
Design and implement production-grade CI/CD pipelines with GitHub Actions, layered testing strategies, secure deployment patterns, and environment management.
ci-cdgithub-actionsdevops
DevOpsv1.0.0
Cloud Architecture
Multi-cloud, VPC design, high availability, disaster recovery, and cost optimization
cloudarchitectureaws
DevOpsv1.0.0
Docker Patterns: Production-Grade Containerization
Master Dockerfile optimization, multi-stage builds, docker-compose patterns, security hardening, and image size reduction techniques for production-grade containerization.
dockercontainerizationdevops