Skip to content
Zoos GlobalZoos GlobalZoos EngineeringHub

Terraform

Infrastructure as Code (IaC) guidelines and conventions.

stableGuidev1.8intermediateterraformiac
1 min readUpdated Jul 24, 2026@infra-teamCloud Infrastructure
Edit source

At Zoos Global, all infrastructure resources are defined and managed as code using Terraform.

Our infrastructure repositories follow a multi-environment layout:

infra-provisioning/
├── modules/
│ ├── ecs-service/
│ ├── database/
│ └── networking/
├── environments/
│ ├── dev/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── outputs.tf
│ ├── staging/
│ └── prod/
  • Terraform state is stored remotely in Amazon S3 buckets with versioning enabled.
  • State locking is enforced using DynamoDB tables.
  • Never commit .tfstate files to git. Our .gitignore strictly blocks them.
  1. Variables and Outputs: Always document variables and outputs using description fields.
  2. Resource Tagging: All resource blocks must include standard resource tags:
    tags = {
    Environment = var.environment
    Project = "zoosglobal"
    ManagedBy = "terraform"
    }
  3. Format and Lint: Format all Terraform code using terraform fmt -recursive before committing.