0Pricing
DevOps Bootcamp · Pelajaran

Mengelola Status Terraform dan Backend Jarak Jauh

Pahami status Terraform, konfigurasikan backend jarak jauh yang aman, tangani penguncian status, dan hindari kerusakan status dalam alur kerja IaC kolaboratif.

Mengelola Status Terraform dan Backend Jarak Jauh adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa Itu State Terraform

Terraform mencatat apa saja yang telah dibuatnya dalam file state (terraform.tfstate). File ini memetakan konfigurasi Anda ke resource cloud nyata.

Tanpa state, Terraform tidak akan mengetahui resource mana yang sudah ada, sehingga dapat membuat duplikat atau gagal memperbaruinya.

Mengapa State Lokal Menyulitkan Tim

Secara default, state disimpan di disk lokal Anda. Hal ini tidak memadai untuk tim atau CI:

  • Orang lain tidak dapat melihat state Anda
  • Proses yang berjalan bersamaan dapat merusak file
  • File tersebut menyimpan rahasia dalam teks biasa dan dapat tidak sengaja di-commit

Solusinya adalah backend jarak jauh.

Backend Jarak Jauh

Backend jarak jauh menyimpan state di lokasi bersama yang tahan lama, seperti bucket S3, Azure Blob, GCS, atau Terraform Cloud.

Dengan demikian, setiap pipeline memiliki satu sumber kebenaran untuk infrastruktur saat ini.

terraform {
  backend "s3" {
    bucket = "my-tf-state"
    key    = "prod/terraform.tfstate"
    region = "us-east-1"
  }
}

Penguncian State

Jika dua pipeline menjalankan apply secara bersamaan, state dapat rusak. Penguncian state mencegahnya dengan mengizinkan hanya satu penulisan pada satu waktu.

Dengan backend S3, tabel DynamoDB menyediakan kunci tersebut. Terraform Cloud melakukan penguncian secara otomatis.

  backend "s3" {
    bucket         = "my-tf-state"
    key            = "prod/terraform.tfstate"
    dynamodb_table = "tf-locks"
  }

Mengenkripsi State

File state sering berisi nilai sensitif seperti kata sandi dan kunci. Selalu enkripsi state saat disimpan.

Untuk backend S3, aktifkan enkripsi bucket dan tetapkan encrypt = true dalam konfigurasi backend.

  backend "s3" {
    bucket  = "my-tf-state"
    key     = "prod/terraform.tfstate"
    encrypt = true
  }

Workspace untuk Lingkungan

Workspace Terraform memungkinkan satu konfigurasi mengelola beberapa file state, satu untuk setiap lingkungan.

Beralihlah di antara workspace tersebut agar staging dan produksi tidak pernah menggunakan state yang sama.

terraform workspace new staging
terraform workspace select production

Plan dan Apply dalam CI

Dalam pipeline, jalankan terraform plan untuk melihat pratinjau perubahan (biasanya pada PR) dan terraform apply untuk menerapkannya (saat merge ke main).

Simpan plan ke dalam file agar apply menggunakan persis hal yang telah ditinjau.

terraform plan -out=tfplan
terraform apply -auto-approve tfplan

Memeriksa State

Anda dapat mengkueri state untuk melihat apa saja yang dilacak Terraform.

  • terraform state list — mencantumkan resource yang dikelola
  • terraform state show <addr> — detail satu resource

Hindari mengedit state secara manual; gunakan perintah.

terraform state list
terraform state show aws_instance.web

Mengimpor Resource yang Sudah Ada

Jika sebuah resource dibuat di luar Terraform, masukkan resource tersebut ke dalam pengelolaan dengan terraform import, bukan dengan membuatnya ulang.

Hal ini mencegah duplikasi yang merusak saat menerapkan IaC pada infrastruktur yang sudah ada.

terraform import aws_s3_bucket.logs my-existing-bucket

Menangani Drift

Drift terjadi ketika seseorang mengubah infrastruktur secara manual sehingga kondisi nyata tidak lagi sesuai dengan state.

Jalankan terraform plan secara berkala untuk mendeteksi drift, lalu terapkan ulang untuk memulihkan kondisi atau perbarui konfigurasi agar sesuai.

Jangan Pernah Meng-commit State

Bahkan dengan backend jarak jauh, pastikan state lokal dan file plan diabaikan oleh git. Keduanya berisi rahasia.

.gitignore yang baik melindungi Anda dari kebocoran yang tidak disengaja.

# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/

Pemeriksaan Singkat

Uji pemahaman Anda tentang state Terraform.

Ringkasan

Anda telah mempelajari cara mengelola state Terraform dengan aman.

  • State memetakan konfigurasi ke resource nyata; jangan pernah mengeditnya secara manual
  • Backend jarak jauh membagikan state ke seluruh tim dan CI
  • Penguncian dan enkripsi melindungi dari kerusakan dan kebocoran
  • Workspace mengisolasi lingkungan; plan mendeteksi drift

Pengelolaan state yang kokoh merupakan tulang punggung pipeline IaC yang andal.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengelola Status Terraform dan Backend Jarak Jauh” gratis?

Ya — teks lengkap “Mengelola Status Terraform dan Backend Jarak Jauh” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengelola Status Terraform dan Backend Jarak Jauh”?

Pahami status Terraform, konfigurasikan backend jarak jauh yang aman, tangani penguncian status, dan hindari kerusakan status dalam alur kerja IaC kolaboratif. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Mengelola Status Terraform dan Backend Jarak Jauh” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. IaC dengan Terraform dan GitHub Actions
  2. Mengelola Sumber Daya Awan
  3. Mengotomatiskan Pembaruan Infrastruktur
  4. Mengelola Status Terraform dan Backend Jarak Jauh
← Kembali ke DevOps Bootcamp