Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • CI/CD Laravel: Otomatisasi Deployment dengan Jenkins & Docker
  • Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  • Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)
  • Panduan Lengkap: Deploy Website Statis ke Kubernetes Menggunakan Docker + NodePort
  • Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

Recent Comments

  1. Masdika.BIZ.ID on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  2. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  3. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  4. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy
  5. someone on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Archives

  • August 2025
  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Mengenal Terraform: Tool DevOps untuk Otomasi Infrastruktur

July 7, 2025 Tutorial by Masdika.BIZ.ID
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:

AspekTerraformAnsible
FokusProvisioningConfiguration Management
BahasaHCL (HashiCorp Configuration Language)YAML
SifatDeklaratifImperatif (tapi bisa semi-deklaratif)
AgentTidak perlu agentTidak perlu agent (SSH-based)
Penyimpanan StateYa, menggunakan state fileTidak

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:

  1. Menulis file konfigurasi (main.tf, variables.tf, dsb)
  2. Terraform membaca dan mem-parsing file
  3. Membuat execution plan (perintah terraform plan)
  4. Menjalankan perintah untuk apply (terraform apply)
  5. 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 Terraform
  • terraform plan: Menampilkan rencana aksi
  • terraform apply: Menerapkan perubahan
  • terraform destroy: Menghapus semua resource
  • terraform validate: Memvalidasi konfigurasi
  • terraform 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 variable AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY.

9. 🪖 Deklaratif vs Imperatif

KonsepDeklaratifImperatif
PendekatanMenuliskan hasil akhir yang diinginkanMenuliskan langkah demi langkah
Contoh ToolTerraformBash, Ansible
KeuntunganLebih mudah dipelihara dan diubahLebih 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!

Share:
Tags: AutomationCloudComputingdevopsInfrastructureAsCodeterraform

Post navigation

Prev
Next
Write a comment Cancel Reply

© 2025 www.masdika.biz.id — Semua Hak Dilindungi