Mengenal Terraform: Tool DevOps untuk Otomasi Infrastruktur

Pada tulisan kali ini, saya ingin berbagi pengetahuan seputar salah satu tool DevOps yang paling banyak digunakan dalam otomasi infrastruktur modern, yaitu Terraform. Tulisan ini saya susun setelah menyimak materi dari video pembelajaran oleh Mas Giri Kuncoro, seorang praktisi DevOps berpengalaman.
1. ❓ Apa Itu Terraform?
Terraform adalah sebuah open-source tool yang digunakan untuk mengelola dan melakukan otomasi terhadap infrastruktur dengan pendekatan Infrastructure as Code (IaC). Ia dikembangkan oleh HashiCorp dan ditulis menggunakan bahasa pemrograman Go.
Dengan Terraform, kita dapat membuat, mengubah, dan mengelola infrastruktur seperti:
- Virtual Machines (VM)
- Jaringan (VPC, Subnet, Firewall, dsb)
- Storage (Bucket, Disk)
- Identity & Access Management (IAM Users, Policies)
- Layanan tingkat platform (Database, Load Balancer, dll)
2. 🌐 Terraform Digunakan Untuk Apa?
Terraform digunakan dalam proses Provisioning Infrastructure, yaitu membangun dan menyiapkan infrastruktur dari nol secara otomatis dan konsisten.
Beberapa hal yang bisa dikerjakan oleh Terraform:
- Membuat Virtual Private Cloud (VPC)
- Membuat dan menjalankan VM di AWS, GCP, Azure
- Mengatur DNS menggunakan provider seperti Cloudflare
- Membuat user, role, dan policy IAM
- Setup docker, load balancer, dan service-service lain
3. ⚖️ Perbedaan Terraform dan Ansible
Persamaan:
- Sama-sama mengusung konsep Infrastructure as Code (IaC)
- Dapat digunakan untuk mengelola konfigurasi dan infrastruktur
- Bisa digunakan secara otomatis melalui CI/CD pipeline
Perbedaan Utama:
Aspek | Terraform | Ansible |
---|---|---|
Fokus | Provisioning | Configuration Management |
Bahasa | HCL (HashiCorp Configuration Language) | YAML |
Sifat | Deklaratif | Imperatif (tapi bisa semi-deklaratif) |
Agent | Tidak perlu agent | Tidak perlu agent (SSH-based) |
Penyimpanan State | Ya, menggunakan state file | Tidak |
Terraform digunakan saat ingin membangun infrastruktur dari nol. Ansible lebih cocok untuk mengatur konfigurasi server yang sudah ada.
4. 📊 Cara Kerja Terraform
Terraform bekerja dengan prinsip “desired state“. Artinya, pengguna cukup menuliskan seperti apa infrastruktur yang diinginkan, lalu Terraform akan menghitung perbedaan dengan kondisi aktual dan mengeksekusi langkah-langkah yang diperlukan untuk mencapainya.
Langkah kerja Terraform:
- Menulis file konfigurasi (main.tf, variables.tf, dsb)
- Terraform membaca dan mem-parsing file
- Membuat execution plan (perintah
terraform plan
) - Menjalankan perintah untuk apply (
terraform apply
) - Menyimpan informasi state ke dalam file
terraform.tfstate
5. ⚙️ Komponen Arsitektur Terraform
a. Core Component:
- Membutuhkan 2 input utama:
- TF Config: file konfigurasi infrastruktur
- TF State: file penyimpanan kondisi infrastruktur sekarang
- Output: Terraform Plan
b. Provider:
- Penghubung antara Terraform dengan layanan eksternal seperti:
- Cloud (AWS, GCP, Azure)
- Kubernetes
- MySQL/PostgreSQL
- Docker, Helm, Vault, dll
Dengan ribuan provider tersedia, Terraform memungkinkan kita mengelola infrastruktur hingga level aplikasi dari satu tempat.
6. 🔧 Perintah Dasar Terraform
Berikut beberapa perintah dasar yang wajib diketahui:
terraform init
: Inisialisasi direktori Terraformterraform plan
: Menampilkan rencana aksiterraform apply
: Menerapkan perubahanterraform destroy
: Menghapus semua resourceterraform validate
: Memvalidasi konfigurasiterraform fmt
: Merapikan format file HCL
7. 📄 Contoh File Konfigurasi Terraform (HCL)
Nama file nya main.tf
provider "aws" {
region = "ap-southeast-1"
}
resource "aws_instance" "web" {
ami = "ami-1234567890abcdef0" # Ganti dengan AMI ID yang valid di region anda
instance_type = "t2.micro"
tags = {
Name = "WebServer"
}
}
Contoh di atas akan membuat 1 EC2 instance di AWS region Singapore.
8. 🚀 Cara Menjalankan Script Terraform
Langkah-langkah:
a. Masuk ke direktori script Terraform
cd /path/ke/proyek-terraform
b. Inisialisasi provider dan environment
terraform init
c. Cek apa yang akan dikerjakan Terraform (plan)
terraform plan
d. Eksekusi pembuatan resource
terraform apply
Tekan yes
saat diminta konfirmasi.
e. Hapus semua resource (opsional)
terraform destroy
⚠️ Pastikan anda sudah memiliki kredensial cloud yang valid, misalnya untuk AWS bisa disimpan di
/.aws/credentials
atau gunakan environment variableAWS_ACCESS_KEY_ID
danAWS_SECRET_ACCESS_KEY
.
9. 🪖 Deklaratif vs Imperatif
Konsep | Deklaratif | Imperatif |
---|---|---|
Pendekatan | Menuliskan hasil akhir yang diinginkan | Menuliskan langkah demi langkah |
Contoh Tool | Terraform | Bash, Ansible |
Keuntungan | Lebih mudah dipelihara dan diubah | Lebih fleksibel |
Deklaratif: “Saya ingin 3 VM tersedia.”
Imperatif: “Buat 1 VM, lalu duplikat 2 kali.”
10. ⭐ Kelebihan Terraform
- ✅ Open Source & Gratis
- ✅ Deklaratif (mudah dibaca dan dipelihara)
- ✅ Multi-provider Support (bisa multi cloud)
- ✅ State Management yang kuat
- ✅ Reusability melalui module
- ✅ Enabling GitOps (konfigurasi disimpan di Git)
- ✅ Environment Cloning: staging vs production
11. 🧰 Kesimpulan
Terraform adalah salah satu alat penting dalam dunia DevOps modern yang memungkinkan kita untuk membangun dan mengelola infrastruktur secara efisien, repeatable, dan versioned.
Dengan pendekatan Infrastructure as Code, kita dapat:
- Menghindari konfigurasi manual
- Mengurangi human error
- Meningkatkan kolaborasi antar tim
Jika Anda bekerja dalam tim IT, DevOps, SRE, atau Cloud Engineer, memahami Terraform adalah investasi keterampilan yang sangat berharga. 🚀
🌟 Jangan lupa share artikel ini kalau bermanfaat!