What is terraform?
Terraform is an open-source Infrastructure as Code (IaC) tool developed by HashiCorp. It allows you to define and provision infrastructure using a declarative configuration language. This means you can describe your desired infrastructure in code, and Terraform will take care of creating and managing the resources for you.
Why I’m Shifting to Terraform from AWS CloudFormation?

Having worked with AWS CloudFormation for over 3–4 years, I’ve decided to make the switch to Terraform for a few compelling reasons:
1. Multi-Cloud Support:
Terraform supports multiple cloud providers, not just AWS. This means I can use the same tool to manage resources across AWS, Azure, Google Cloud, and more.
2. Declarative Syntax:
Terraform uses a declarative syntax which is more human-readable and allows me to focus on what I want to achieve rather than the specific steps to get there.
3. Resource State Management:
Terraform maintains a state file that keeps track of the current state of your infrastructure. This makes it easy to understand the current state and make changes accordingly.
4. Ecosystem and Community:
Terraform has a vibrant community and a rich ecosystem of modules and providers, making it easy to integrate with other tools and extend its functionality.
Installation Steps
Getting started with Terraform is straightforward. Here are the basic installation steps:
Step 1: Download Terraform
https://developer.hashicorp.com/terraform/downloads?source=post_page—–4e0f1b630c4a—————————————
Step 2: Install Terraform
NOTE: I have used the following packet manager. For other OS, please refer to the above site.

Step 3: Verify Installation
Open a terminal or command prompt and run terraform --version
to ensure it’s installed correctly.

Essential Terraform Commands
Here are a few fundamental Terraform commands to get you started:
terraform init
: Initializes a working directory containing Terraform configuration files.terraform plan
: Creates an execution plan detailing what actions Terraform will take to achieve the desired state.terraform apply
: Executes the actions proposed in the execution plan to reach the desired state.terraform destroy
: Destroys the resources defined in the configuration.
Inserting Code Snippets
Let’s take a look at a basic example of how to use Terraform to create an AWS EC2 instance:
provider "aws" {
region = "ap-south-1"
}
resource "aws_instance" "example" {
ami = "ami-xxxxxx"
instance_type = "t2.micro"
}
In this example, we’re using Terraform’s declarative syntax to define an AWS EC2 instance. We specify the region and the instance type, along with the AMI ID.
Reference to GitHub Repository
As I embark on this Terraform journey, I’ve set up a GitHub repository to share my progress. Since I’m also a beginner, I welcome fellow enthusiasts to contribute and offer feedback. Feel free to correct any mistakes or suggest improvements — together, we’ll master Terraform!