How to create an Amazon EC2 instance using Terraform

13 feb 2024 2 min di lettura
How to create an Amazon EC2 instance using Terraform
Indice dei contenuti


In the rapidly evolving landscape of cloud computing, the ability to efficiently deploy and manage resources is critical for developers and organizations. Amazon EC2 (Elastic Compute Cloud) stands out as a foundational service within AWS (Amazon Web Services), offering scalable computing capacity. Together with Terraform, an open source infrastructure as code software tool, deploying EC2 instances becomes a simplified and automated process.

This guide provides a complete overview of how to deploy Amazon EC2 instances using Terraform, ensuring a simple, scalable, and manageable cloud environment.


Before diving into the deployment process, make sure you have the following prerequisites:

  • AWS Account: An active AWS account is required. If you don't have one, you can sign up for free.
  • AWS CLI: Make sure the AWS Command Line Interface is installed and configured with your credentials.
  • Terraform installed: Download and install Terraform from the official site, following the instructions for your operating system.

Step 1: Setting up your Terraform environment

First, create a new directory for your Terraform project. Go to the directory and create a file called This file will contain the Terraform configuration code to deploy your EC2 instance.

mkdir terraform-ec2
cd terraform-ec2

Step 2: Provider setup

Open in your favorite text editor and start by defining the AWS provider. This step tells Terraform which cloud provider (in this case AWS) we will use and the region where our resources will be deployed.

provider "aws" {
 region = "us-east-1"

Replace us-east-1 with your desired AWS Region.

Step 3: Defining the EC2 instance

Under the provider configuration, define the EC2 instance. Specify the AMI (Amazon Machine Image), instance type, and any other configuration required for your instance.

resource "aws_instance" "example" {
 ami = "ami-12345678"
 instance_type = "t2.micro"

 tags = {
 Name = "TerraformEC2Example"

Replace ami-12345678 with the AMI ID of your choice. You can find AMI IDs in the AWS Management Console or via the AWS CLI.

Step 4: Initialize Terraform

Once setup is complete, initialize Terraform in your project directory. This step prepares the directory for Terraform deployment by downloading the necessary provider plugins.

terraform init

Step 5: Plan your deployment

Before applying the configuration, run a Terraform plan to review the actions Terraform will take based on your configuration.

terraform plan

This command generates a plan that shows what Terraform will do when you apply the configuration, allowing you to review and commit changes before they are made.

Step 6: Deploy your EC2 instance

If everything looks good in your plan, deploy your EC2 instance with the Terraform application.

terraform apply

Terraform will ask for confirmation before proceeding. Type yes to confirm and proceed with deployment.

Step 7: Verify your deployment

Once Terraform has successfully applied your configuration, verify your deployment by checking the AWS Management Console or using the AWS CLI to list your EC2 instances. You should see your new instance running.

Step 8: Cleaning

When you no longer need your EC2 instance, you can easily dismantle it to avoid incurring unnecessary costs.

terraform destroy

Terraform will ask for confirmation again. Type yes to remove the deployed resources.


Deploying Amazon EC2 instances with Terraform offers a powerful, efficient, and repeatable method for managing cloud resources. By automating the deployment process, Terraform not only minimizes the risk of human error, but also significantly reduces the time and effort needed to set up and manage EC2 instances. This guide has walked you through every step of the process, from setting up your Terraform environment to deploying and testing an EC2 instance. As you become more familiar with Terraform and its features, you'll discover even more ways to optimize the management of your cloud infrastructure, making your cloud-based applications more robust and scalable.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.