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 productionPlan 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 tfplanMemeriksa State
Anda dapat mengkueri state untuk melihat apa saja yang dilacak Terraform.
terraform state list— mencantumkan resource yang dikelolaterraform state show <addr>— detail satu resource
Hindari mengedit state secara manual; gunakan perintah.
terraform state list
terraform state show aws_instance.webMengimpor 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-bucketMenangani 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;
planmendeteksi 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
- IaC dengan Terraform dan GitHub Actions
- Mengelola Sumber Daya Awan
- Mengotomatiskan Pembaruan Infrastruktur
- Mengelola Status Terraform dan Backend Jarak Jauh