Lewati ke konten utama

Apa itu Terraform? Mulai dengan Infrastructure as Code

Baca panduan pemula langkah demi langkah untuk menggunakan Terraform, dan pelajari cara mengotomatiskan serta mengelola infrastruktur Azure, AWS, dan Google Cloud Anda secara efisien.
Diperbarui 4 Jun 2026  · 10 mnt baca

Infrastructure as Code (IaC) adalah proses yang mengotomatiskan penyediaan dan pengelolaan infrastruktur melalui kode. Meskipun konfigurasi perangkat keras fisik dan alat konfigurasi interaktif dapat digunakan untuk menyediakan infrastruktur, IaC menawarkan beberapa keunggulan seperti kontrol versi, keterulangan, dan skalabilitas. Salah satu alat IaC teratas adalah Terraform, solusi yang dikembangkan oleh HashiCorp pada tahun 2014 dan digunakan oleh lebih dari 500.000 organisasi di seluruh dunia. Mari kita telusuri cara kerja Terraform dan cara menggunakannya untuk operasi TI modern.

Saat mulai mempelajari Terraform, perlu diketahui bahwa pemahaman terhadap setidaknya satu penyedia cloud utama (AWS, Azure, Google Cloud, dll.) merupakan prasyarat karena Terraform digunakan untuk mengelola infrastruktur cloud. Kursus Understanding Cloud Computing kami memberikan landasan yang kuat jika Anda baru dalam komputasi cloud.

Apa itu Terraform?

Terraform adalah alat open-source yang memungkinkan Anda mendefinisikan komponen infrastruktur dan hubungan di antaranya menggunakan bahasa konfigurasi tingkat tinggi.

Dalam file konfigurasi Terraform yang mudah dibaca manusia, Anda dapat menentukan keadaan yang diinginkan dari infrastruktur Anda dan Terraform akan secara otomatis menentukan cara mencapainya. File-file ini dapat diberi versi, dibagikan, dan digunakan kembali untuk menyediakan cara yang konsisten dalam mengelola infrastruktur Anda, mulai dari sumber daya komputasi dan penyimpanan, hingga DNS dan fitur SaaS.

Terraform dapat digunakan dengan berbagai penyedia cloud, dalam infrastruktur multi-cloud, dan lingkungan on-premises.

Fitur Utama Terraform

Mari kita lihat lebih dekat aspek-aspek mendasar yang membedakan Terraform: 

HashiCorp Configuration Language

Terraform menggunakan bahasa tingkat tinggi bernama HashiCorp Configuration Language (HCL), yang dirancang khusus untuk mendefinisikan infrastruktur sebagai kode. Bahasa konfigurasi tingkat tinggi menerapkan sintaks deklaratif yang lebih abstrak dan ramah pengguna dibandingkan skrip tingkat rendah dan konfigurasi manual. Anda mungkin pernah menjumpai bahasa tingkat tinggi sebelumnya, misalnya pada file YAML atau JSON. 

HCL mengikuti struktur blok, di mana setiap blok bertingkat mewakili sumber daya dan konfigurasinya. Sumber daya didefinisikan secara eksplisit dengan nama dan atribut.

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

Rencana eksekusi

Setelah Anda mendefinisikan keadaan yang diinginkan dari infrastruktur, Terraform akan menghasilkan rencana eksekusi. Rencana ini akan mencantumkan langkah-langkah yang perlu dilakukan Terraform untuk mencapai keadaan tersebut, sehingga Anda dapat meninjau perubahan sebelum diterapkan. Memeriksa rencana sebelum menerapkan perubahan akan menghindari modifikasi yang tidak diinginkan, seperti penghapusan sumber daya.

Manajemen state

Terraform memelihara file state yang secara otomatis melacak keadaan saat ini dari infrastruktur Anda dan berfungsi sebagai sumber kebenaran saat menentukan perubahan apa yang perlu dilakukan. Secara default, file ini disimpan secara lokal dan bernama terraform.tfstate. 

Provider

Provider adalah plugin yang berinteraksi dengan API platform cloud dan layanan lainnya serta memungkinkan Terraform mengelola berbagai macam sumber daya. Provider resmi dikembangkan dan dipelihara oleh HashiCorp dan mitra tepercayanya seperti AWS, Azure, Google Cloud, Github, Datadog, dll. Ada juga plugin yang dikembangkan komunitas, yang dapat ditemukan di Terraform Registry atau Github.

Graf sumber daya

Terraform membangun graf sumber daya yang memperlihatkan sumber daya infrastruktur Anda dan hubungan di antaranya. Graf ini memungkinkan Terraform menghasilkan rencana secara efektif, menangani dependensi antar sumber daya, dan memastikan sumber daya dibuat, diperbarui, dan dihapus dalam urutan yang benar. Graf ini juga merupakan cara yang bagus untuk memvisualisasikan infrastruktur Anda dan memahami dampak dari perubahan yang ingin Anda lakukan. 

Contoh Graf Sumber Daya Terraform, menampilkan sumber daya AWS dan hubungan dependensi di antaranya

Contoh graf sumber daya. Sumber: Dokumentasi HashiCorp

Mulai Menggunakan Terraform

Mari jalani workflow Terraform pertama kita. Jika Anda baru dalam DevOps atau komputasi cloud secara umum, saya sarankan mengikuti kursus Understanding Cloud Computing dan Introduction to DevOps kami sebelum melangkah lebih jauh.

Instalasi dan penyiapan

Dalam tutorial Terraform ini, kita akan membuat sumber daya di AWS. Jika Anda ingin mengikuti dan belum memiliki akun, kunjungi AWS dan daftar.

  1. Unduh Terraform dari situs resmi. Pilih biner yang sesuai untuk sistem operasi Anda dan ikuti petunjuk instalasi.
  2. Setelah Anda menginstal Terraform, buka jendela Terminal baru dan jalankan terraform -version untuk memastikan perangkat lunak terpasang dengan benar. 
  3. Instal AWS CLI
  4. Konfigurasikan AWS CLI dengan menjalankan aws configure di terminal Anda. Anda akan diminta memasukkan Access Key ID, Secret Access Key, nama region default, dan format output default Anda. Terraform seharusnya dapat mengaksesnya secara otomatis.

Konfigurasi Terraform pertama

Buat direktori baru dan file konfigurasi pertama Anda. Mari kita beri nama main.tf, dan beri tahu Terraform bahwa kita ingin membuat instance AWS EC2. Kodenya, ditulis dalam HCL, terlihat seperti ini:

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

Inisialisasi proyek

Sekarang mari kita inisialisasi proyek Terraform kita dengan menjalankan perintah berikut:

$ terraform init

Ini adalah perintah satu kali dan akan mengunduh plugin provider yang diperlukan. Anda tidak perlu menjalankannya untuk perubahan selanjutnya. 

Plan

Sekarang kita ingin menghasilkan rencana eksekusi. Ingat, rencana akan menyoroti perubahan yang perlu dilakukan Terraform untuk mencapai keadaan yang diinginkan (dalam hal ini, sebuah instance EC2 yang berjalan). Jalankan:

$ terraform plan

Anda akan melihat sesuatu seperti ini:

Terraform will perform the following actions:

  # aws_instance.example will be created
  + resource "aws_instance" "example" {
      + ami                           = "ami-0c55b159cbfafe1f0"
      + instance_type                 = "t2.micro"
      ...
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Apply

Kita telah meninjau rencananya dan sekarang memutuskan untuk mengeksekusinya serta menyediakan sumber daya. Di terminal Anda, jalankan:

$ terraform apply

Anda akan diminta mengonfirmasi tindakan. Ketik “yes” untuk melanjutkan.

Do you want to perform these actions? 
Terraform will perform the actions described above. 
Only 'yes' will be accepted to approve. 
Enter a value: yes 

 Anda akan melihat hal berikut:

aws_instance.example: Creating... 
aws_instance.example: Still creating... [10s elapsed] aws_instance.example: 
Creation complete after 15s [id=i-0abcdef1234567890] 

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

 Selamat, Anda telah menyediakan instance EC2 pertama di AWS menggunakan Terraform!

Manfaat Menggunakan Terraform

Sebelumnya kami menyebutkan bahwa menggunakan Terraform memberikan banyak manfaat, seperti konsistensi dan keterulangan, serta menurunkan tingkat kesalahan manusia berkat rencana eksekusi. 

Manfaat lainnya meliputi:

  • Penyediaan Cepat: Terraform dapat membuat dan memperbarui sumber daya secara paralel, yang sangat berguna untuk menyiapkan lingkungan pengembangan, pengujian, dan staging dengan cepat.
  • Kolaborasi yang Meningkat: Dipadukan dengan sistem kontrol versi seperti Git, Terraform adalah cara yang sangat baik untuk meningkatkan kolaborasi dan transparansi atas infrastruktur Anda. Perubahan dapat ditinjau, disetujui, dan dilacak layaknya kode aplikasi.
  • Disaster Recovery yang Efisien: Jika terjadi sesuatu, Terraform dapat dengan cepat membuat ulang seluruh infrastruktur dari awal menggunakan file konfigurasi yang sama.
  • Dukungan Komunitas: Terraform mendorong penggunaan modul, yaitu konfigurasi yang dapat digunakan kembali yang bisa dibagikan dan mempromosikan praktik terbaik dalam mengelola infrastruktur. Terraform juga memiliki komunitas yang aktif dan ekosistem provider serta modul yang luas, sehingga kemungkinan besar Anda akan menemukan sesuatu untuk tumpukan teknologi Anda, betapapun niche-nya.

Kasus Penggunaan Umum untuk Terraform

Baik Anda seorang Data Engineer yang membangun pipeline atau Data Scientist yang ingin mendepoloy solusi Anda ke produksi, Terraform adalah alat yang hebat untuk mengelola kebutuhan infrastruktur Anda. Berikut beberapa kasus penggunaan paling umum:

Manajemen multi-cloud

Tidak selalu mudah mengelola infrastruktur yang mencakup beberapa penyedia cloud. Terraform memungkinkan Anda melakukan hal itu hanya dengan satu alat. Selain itu, Terraform dapat mengelola sumber daya on-premise, menjadikannya solusi ideal bagi organisasi yang beroperasi di lingkungan hybrid.

Workflow CI/CD

Terraform terintegrasi dengan baik dengan workflow CI/CD, yang berarti Anda dapat menerapkan infrastruktur sebagai bagian dari proses pengiriman perangkat lunak. Anda juga dapat secara otomatis membuat dan menghapus lingkungan pratinjau, dev, pengujian, atau staging sesuai kebutuhan.

Klaster Kubernetes

Terraform dapat mengelola klaster Kubernetes pada berbagai penyedia cloud seperti AWS (EKS), Azure (AKS), atau GCP (GKE). Ini mencakup penyiapan infrastruktur yang diperlukan, pengelolaan sumber daya Kubernetes dalam klaster, dan penskalaan klaster berdasarkan kebutuhan beban kerja.

Terraform vs. Alat IaC Lainnya

Alat IaC populer lainnya mencakup Ansible, Chef, Puppet, dan AWS CloudFormation. Setiap alat memiliki kelebihan dan kekurangannya. Perhatikan berikut ini:

Fitur Terraform Ansible Chef Puppet CloudFormation
Sumber Terbuka Ya Ya Ya Ya Tidak
Sintaks Deklaratif Ya Tidak Tidak Ya Ya
Dukungan Multi-Cloud Ya Ya Ya Ya Tidak, hanya AWS
Manajemen State Ya Tidak Tidak Ya Ya
Rencana Eksekusi Ya Tidak Tidak Tidak Tidak
Manajemen Dependensi Ya Terbatas Terbatas Ya Ya

Seperti yang kita lihat, meskipun semua alat ini kuat dengan caranya masing-masing, Terraform menonjol karena set fiturnya yang komprehensif. Namun, daftar ini tidak lengkap, dan setiap alat melayani kasus penggunaan yang sedikit berbeda tergantung pada kebutuhan. Misalnya, Ansible dengan sifat proseduralnya sangat cocok untuk manajemen konfigurasi dan tugas ad-hoc.

Kesimpulan

Dalam 10 tahun terakhir, Terraform telah membantu ribuan organisasi mengelola infrastruktur TI mereka. Dengan pendekatan deklaratif, kemampuan otomasi, dan dukungan untuk lingkungan multi-cloud, Terraform telah menjadi salah satu alat IaC paling populer, dan tidak diragukan lagi akan tetap menjadi pemain utama di ruang manajemen infrastruktur seiring terus meningkatnya adopsi cloud. 

Sekarang setelah Anda memahami dasar-dasar Terraform, Anda dapat mendalami konfigurasi yang lebih lanjut dan skenario nyata. Lihat tutorial HashiCorp Terraform untuk mempelajari cara menggunakan Terraform untuk tugas dan kasus penggunaan umum, atau baca posting blog kami 14 Alat Esensial Data Engineering untuk Digunakan di 2024 untuk memahami bagaimana Terraform cocok dalam perangkat Data Engineer.


Marie Fayard's photo
Author
Marie Fayard

Saya adalah tech lead berorientasi produk yang berspesialisasi dalam mengembangkan startup tahap awal dari prototipe pertama hingga mencapai product-market fit dan seterusnya. Saya sangat penasaran dengan cara orang menggunakan teknologi, dan saya senang bekerja erat dengan para founder serta tim lintas fungsi untuk mewujudkan ide-ide berani. Saat tidak membangun produk, saya mencari inspirasi di berbagai penjuru dunia atau melepas penat di studio yoga.

Frequently Asked Questions

Apakah Terraform cocok untuk proyek skala kecil atau terutama untuk penggunaan enterprise?

Terraform adalah alat yang bermanfaat, apa pun ukuran proyek Anda! Baik Anda memiliki 5 sumber daya untuk dikelola atau 1000, Anda pasti akan merasakan manfaatnya.

Berapa biaya Terraform?

Terraform bersifat open-source dan gratis digunakan, tetapi ingat bahwa penyedia cloud Anda akan menagih biaya atas sumber daya yang disediakan dan dikelola melalui Terraform.

Dapatkah Terraform mengelola database dan layanan stateful lainnya?

Ya, Terraform dapat mengelola database dan layanan stateful lainnya. Anda dapat mendefinisikan instance, klaster, dan konfigurasinya dalam file IaC Anda.

Bagaimana Terraform menangani secret dan informasi sensitif dalam file konfigurasi?

Terraform mendorong praktik terbaik untuk menangani secret dengan mendukung variabel lingkungan, variabel terenkripsi, dan integrasi dengan layanan manajemen secret seperti HashiCorp Vault atau AWS Secrets Manager.

Topik

Belajar bersama DataCamp

Kursus

Pengantar Python

4 Hr
6.9M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

Lihat Lebih BanyakLihat Lebih Banyak