Skip to main content

Cloud

Introduction to Terraform (EC2 Creation using Terraform)

Istock 1366415101

TABLE OF CONTENTS

  • Introduction
  • Infrastructure as Code (IaC)
  • Benefits of IaC include:
  • Why Terraform?
  • Key Concepts and Components of Terraform
  •  Setting Up Terraform and Creating Your First Configuration
  • Conclusion

Key Concepts and Components of Terraform

Terraform has several key concepts and components that you should be familiar with:

  • Providers: Providers are responsible for managing the lifecycle of resources within a specific cloud platform or service. Terraform has a wide range of built-in providers, and you can also create your own custom providers.
  • Resources: Resources are the individual components of your infrastructure, such as virtual machines, storage accounts, or network interfaces. In Terraform, you define your resources using the HCL code.
  • State: Terraform maintains a state file that tracks the current state of your infrastructure. This allows Terraform to determine what changes need to be made to bring your infrastructure in line with your desired state.
  • Modules: Modules are reusable, self-contained units of Terraform code that can be shared and reused across different projects. Modules help you to create modular, maintainable infrastructure code.

🔹 Setting Up Terraform and Creating Your First Configuration

To get started with Terraform, follow these steps:

  1. Download and install Terraform: Visit the Terraform Download Link and download the appropriate binary for your operating system. Extract the binary to a directory in your system’s PATH.
  2. Verify the installation: Open a terminal or command prompt and run terraform -v to verify that Terraform is installed correctly. You should see the version number displayed.
  3. Create a new directory for your Terraform project: Create a new directory to store your Terraform configuration files. Navigate to this directory in your terminal or command prompt.
  4. Create a Terraform configuration file: In your project directory, create a new file called main.tf. This file will contain your Terraform configuration.
  5. Define a provider and resource: In main.tf, define a provider and a resource using HCL.
  6. For example, to create a simple AWS EC2 instance, you might use the following HCL code.

COPY

provider “aws” {
  region = “eu-north-1”
  access_key =”*************************”
  secret_key = “***********************************************”
}
resource “aws_instance” “my-first-ec2-instance” {
  ami       = “ami-04980462b81b515f6”
  instance_type=”t3.micro”
  tags = {
    Name = “my-first-ec2-instance”
  }
}
Since I have chosen the north region as per convenient also added my region AMI because ec2 instance and AMI are region specific.
  1. Initialize Terraform: In your terminal or command prompt, run terraform init to initialize your Terraform project. This will download the necessary provider plugins and set up the backend for storing your state file.

2.Plan your configuration: Run terraform plan, the plan will show you a detailed summary of the actions Terraform will take, such as creating, modifying, or destroying resources.

3.Apply your configuration: Run terraform apply to create your infrastructure. Terraform will prompt you to confirm that you want to proceed.

  1. Type yes and press Enter to continue

 

 

 

 

4.Verify your infrastructure: Once Terraform has finished applying your configuration, you should see your new infrastructure in your cloud provider’s console

  1. Destroy your infrastructure: Run terraform destroy command is used to destroy the resources created by a Terraform configuration. It is used when you want to tear down or remove the infrastructure that was previously created.

Thank you!! Happy learning

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Jeevanantham Balakrishnan

Jeevanantham Balakrishnan works at Perficient as Technical Consultant. He has a firm understanding of technologies like Databricks, Spark, AWS, and DevOps. He is keen to learn new technologies.

More from this Author

Categories
Follow Us