Infrastructure as Code (IaC) makes deployments reproducible:
resource "aws_s3_bucket" "data_lake" {
bucket = "company-data-lake"
}
resource "aws_s3_bucket_versioning" "data_lake" {
bucket = aws_s3_bucket.data_lake.id
versioning_configuration {
status = "Enabled"
}
}
Benefits:
- Version control for infrastructure
- Consistent dev/staging/prod environments
- Code review for infrastructure changes
- Disaster recovery through recreation
Terraform is cloud-agnostic. Pulumi lets you use Python instead of HCL. Learn one well.