Tuesday, March 24, 2026

Membuat Instance EC2 di VPC Menggunakan Terraform AWS

Pengantar

Terraform adalah alat Infrastructure as Code (IaC) yang memungkinkan kita untuk mendefinisikan dan mengelola infrastruktur cloud menggunakan kode. Salah satu implementasi umum Terraform adalah membuat instance EC2 di VPC AWS.

Artikel ini akan membahas langkah demi langkah, mulai dari instalasi Terraform hingga membuat EC2 di dalam VPC lengkap dengan subnet, security group, dan key pair.

1. Persiapan Lingkungan

Sebelum memulai, pastikan Anda memiliki:

  1. Akun AWS dengan akses IAM yang memiliki izin untuk membuat VPC, EC2, Security Group, dan Key Pair.
  2. Terraform terinstal di sistem Anda. Cek versi Terraform:




terraform version
  1. AWS CLI (opsional tapi membantu) dan sudah dikonfigurasi dengan kredensial:




aws configure

2. Membuat Struktur Direktori Terraform

Buat direktori proyek Terraform, misalnya:





mkdir terraform-ec2-vpc
cd terraform-ec2-vpc

Di dalam direktori ini, buat file-file berikut:

  • main.tf → definisi sumber daya (resources)
  • variables.tf → deklarasi variabel
  • outputs.tf → output hasil eksekusi Terraform
  • provider.tf → konfigurasi provider AWS

3. Konfigurasi Provider AWS

Buat file provider.tf untuk menentukan provider AWS:





terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
  required_version = ">= 1.5.0"
}

provider "aws" {
  region = "ap-southeast-1"  # ganti dengan region yang Anda inginkan
}

4. Membuat VPC

File main.tf dapat digunakan untuk membuat VPC baru:





resource "aws_vpc" "main_vpc" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "main-vpc"
  }
}

resource "aws_subnet" "main_subnet" {
  vpc_id            = aws_vpc.main_vpc.id
  cidr_block        = "10.0.1.0/24"
  availability_zone = "ap-southeast-1a"
  tags = {
    Name = "main-subnet"
  }
}

Penjelasan:

  • aws_vpc → membuat VPC dengan CIDR 10.0.0.0/16
  • aws_subnet → membuat subnet dalam VPC dengan CIDR 10.0.1.0/24

5. Membuat Security Group

Agar EC2 bisa diakses via SSH, buat Security Group:





resource "aws_security_group" "sg_ssh" {
  name        = "allow_ssh"
  description = "Allow SSH inbound traffic"
  vpc_id      = aws_vpc.main_vpc.id

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    Name = "allow-ssh"
  }
}

6. Membuat Key Pair

Agar bisa login ke EC2, buat key pair AWS (atau gunakan key pair yang sudah ada):





resource "aws_key_pair" "my_key" {
  key_name   = "my-key"
  public_key = file("~/.ssh/id_rsa.pub")  # path ke public key lokal
}

7. Membuat Instance EC2

Terakhir, buat EC2 di subnet yang sudah dibuat:





resource "aws_instance" "my_ec2" {
  ami           = "ami-0b0dcb5067f052a63"  # ganti sesuai region
  instance_type = "t2.micro"
  subnet_id     = aws_subnet.main_subnet.id
  key_name      = aws_key_pair.my_key.key_name
  vpc_security_group_ids = [aws_security_group.sg_ssh.id]

  tags = {
    Name = "my-ec2-instance"
  }
}

8. Mendefinisikan Output

Buat file outputs.tf untuk menampilkan informasi EC2 setelah deployment:





output "instance_id" {
  value = aws_instance.my_ec2.id
}

output "instance_public_ip" {
  value = aws_instance.my_ec2.public_ip
}

9. Menjalankan Terraform

Langkah-langkah untuk menjalankan Terraform:

  1. Inisialisasi Terraform:




terraform init
  1. Melihat rencana (plan):




terraform plan
  1. Menerapkan perubahan (apply):




terraform apply

Setelah menekan yes, Terraform akan membuat VPC, subnet, security group, key pair, dan EC2.


10. Mengakses EC2

Setelah EC2 berjalan, Anda bisa mengaksesnya via SSH:





ssh -i ~/.ssh/id_rsa ec2-user@<EC2_PUBLIC_IP>

Catatan: Ganti <EC2_PUBLIC_IP> dengan output dari Terraform.


11. Membersihkan Infrastruktur

Untuk menghapus semua resource yang dibuat oleh Terraform:





terraform destroy

Ini akan mencegah biaya yang tidak perlu di AWS.


12. Tips dan Best Practices

  1. Gunakan variabel untuk AMI, region, dan instance_type agar lebih fleksibel.
  2. Gunakan Terraform state backend seperti S3 untuk tim agar state tersimpan secara aman.
  3. Pisahkan resource ke beberapa file (VPC, EC2, SG) agar mudah di-maintain.
  4. Gunakan Terraform modules jika akan membuat pola EC2 + VPC berulang.

Dengan langkah-langkah di atas, Anda sekarang dapat membuat instance EC2 di VPC AWS secara otomatis menggunakan Terraform. Pendekatan ini jauh lebih efisien daripada membuat manual melalui AWS Console, apalagi jika Anda mengelola banyak instance dan jaringan.

Similar Posts