Terraform Interview Questions and Answers for Experienced Professionals
Terraform is one of the most widely used Infrastructure as Code (IaC) tools, and for experienced candidates, interviews focus on state management, modules, remote backends, provisioning strategies, and real-world cloud architecture scenarios.
Below are the most important Terraform interview questions and answers for experienced professionals.
1. What is Terraform?
Answer:
Terraform is an open-source Infrastructure as Code (IaC) tool developed by HashiCorp. It allows you to define and manage infrastructure using declarative configuration files.
It supports multiple cloud providers like:
- AWS
- Azure
- Google Cloud
- Kubernetes
2. What is Terraform state?
Answer:
Terraform state is a file (terraform.tfstate) that keeps track of the infrastructure created by Terraform.
It helps Terraform:
- Map real-world resources to configuration
- Track metadata
- Improve performance
👉 State is critical and should be stored securely (preferably remote backend).
3. What are Terraform modules?
Answer:
Modules are reusable sets of Terraform configurations.
Types:
- Root module (main working directory)
- Child modules (reusable components)
👉 Modules help in:
- Code reuse
- Standardization
- Better structure
4. What is a Terraform provider?
Answer:
A provider is a plugin that allows Terraform to interact with APIs of cloud platforms.
Examples:
- AWS provider
- Azure provider
- Google Cloud provider
5. What is a backend in Terraform?
Answer:
A backend defines where Terraform stores its state file.
Types:
- Local backend (default)
- Remote backend (S3, Azure Blob, Terraform Cloud)
👉 Remote backends support collaboration and locking.
6. Difference between Terraform and Ansible?
| Feature | Terraform | Ansible |
|---|---|---|
| Type | IaC tool | Configuration management |
| Approach | Declarative | Imperative |
| State management | Yes | No |
| Best use | Infrastructure provisioning | Server configuration |
7. What is Terraform lifecycle?
Answer:
Lifecycle rules control how Terraform manages resources.
Common lifecycle arguments:
create_before_destroyprevent_destroyignore_changes
8. What is terraform init?
Answer:
Initializes a Terraform working directory.
It:
- Downloads providers
- Sets up backend
- Prepares environment
9. What is terraform plan?
Answer:
Shows the execution plan before applying changes.
👉 It helps preview:
- Resources to be created
- Modified resources
- Deleted resources
10. What is terraform apply?
Answer:
Executes the plan and creates/modifies infrastructure.
11. What is terraform destroy?
Answer:
Removes all resources managed by Terraform.
12. What are Terraform workspaces?
Answer:
Workspaces allow multiple environments within the same configuration.
Examples:
- dev
- staging
- production
13. How does Terraform handle dependency management?
Answer:
Terraform automatically builds a dependency graph using references between resources.
Example:
- EC2 depends on VPC
- Terraform ensures correct order
14. What are Terraform variables?
Answer:
Variables are inputs to Terraform configurations.
Types:
- string
- number
- list
- map
They make configurations flexible and reusable.
15. What are outputs in Terraform?
Answer:
Outputs display useful information after deployment.
Example:
- Public IP
- Load balancer DNS
16. What is Terraform import?
Answer:
Used to bring existing infrastructure under Terraform management.
Command:
terraform import aws_instance.example i-123456
17. What is drift in Terraform?
Answer:
Drift occurs when real infrastructure differs from Terraform state.
Solution:
- Run
terraform plan - Use
terraform applyto fix drift
18. What is remote state locking?
Answer:
Prevents multiple users from modifying state simultaneously.
Commonly used with:
- AWS S3 + DynamoDB
- Terraform Cloud
19. How do you secure Terraform state?
Answer:
- Use remote backend
- Enable encryption (S3 SSE)
- Restrict access using IAM roles
- Avoid storing secrets in state files
20. How do you manage large Terraform projects?
Answer:
- Use modules
- Separate environments (dev/stage/prod)
- Use remote state
- Follow naming conventions
- Implement CI/CD pipelines
21. What is terraform taint?
Answer:
Marks a resource for recreation on next apply.
22. What is terraform fmt?
Answer:
Automatically formats Terraform code for consistency.
23. What is terraform validate?
Answer:
Checks configuration syntax and internal consistency.
24. How does Terraform handle secrets?
Answer:
- Use secret managers (AWS Secrets Manager, Vault)
- Avoid hardcoding secrets
- Use environment variables
25. What are some best practices in Terraform?
Answer:
- Use modules for reuse
- Store state remotely
- Enable state locking
- Use version control (Git)
- Follow naming conventions
- Avoid hardcoding values