0Pricing
Cloud & IT Cert Prep · Pelajaran

Terraform di Azure

Konfigurasikan penyedia Terraform AzureRM, tulis rencana infrastruktur dasar, lalu pahami kapan Terraform lebih tepat dipilih daripada alat ARM/Bicep asli.

Terraform di Azure adalah pelajaran Cloud & IT Cert Prep 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 Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Terraform dan Mengapa Azure?

Terraform adalah alat Infrastruktur sebagai Kode sumber terbuka yang dikembangkan oleh HashiCorp. Berbeda dengan Bicep, Terraform tidak bergantung pada cloud tertentu — satu basis kode Terraform dapat mengelola resource di Azure, AWS, GCP, dan banyak provider lainnya secara bersamaan. Di Azure, Terraform menggunakan provider AzureRM untuk berinteraksi dengan API ARM, sehingga menjadi pilihan populer bagi organisasi multi-cloud.

Provider Terraform AzureRM

Provider AzureRM adalah plugin yang diunduh dan digunakan Terraform untuk menerjemahkan konfigurasi Terraform menjadi panggilan API ARM. Provider ini dikelola oleh HashiCorp dan Microsoft serta merupakan cara resmi untuk mengelola resource Azure dengan Terraform. Konfigurasikan provider dengan ID subscription dan metode autentikasi Anda, lalu jalankan terraform init untuk mengunduhnya.

# main.tf — configure the AzureRM provider
terraform {
  required_providers {
    azurerm = {
      source  = 'hashicorp/azurerm'
      version = '~> 3.0'
    }
  }
}

provider 'azurerm' {
  features {}
  subscription_id = var.subscription_id
}

Struktur File Terraform

Proyek Terraform Azure biasanya dibagi ke dalam beberapa .tf file: main.tf berisi deklarasi resource, variables.tf mendefinisikan variabel input, outputs.tf mendefinisikan nilai output, dan terraform.tfvars menyediakan nilai variabel untuk Environment tertentu. Terraform secara otomatis memuat semua .tf file di direktori saat ini, sehingga pemisahan menjadi beberapa file semata-mata dilakukan demi keterbacaan.

# variables.tf
variable 'resource_group_name' {
  description = 'Name of the resource group'
  type        = string
  default     = 'my-rg'
}

variable 'location' {
  description = 'Azure region'
  type        = string
  default     = 'eastus'
}

Mendeklarasikan Resource Azure

Dalam Terraform, Anda mendeklarasikan resource Azure menggunakan blok resource. Tipe bloknya adalah resource, diikuti tipe resource AzureRM (misalnya, 'azurerm_resource_group') dan nama lokal yang digunakan untuk merujuknya dalam konfigurasi. Nama properti di Terraform menggunakan snake_case, bukan camelCase atau PascalCase seperti yang digunakan dalam JSON ARM.

# main.tf — create a resource group and storage account
resource 'azurerm_resource_group' 'main' {
  name     = var.resource_group_name
  location = var.location
}

resource 'azurerm_storage_account' 'storage' {
  name                     = 'mystorageaccount'
  resource_group_name      = azurerm_resource_group.main.name
  location                 = azurerm_resource_group.main.location
  account_tier             = 'Standard'
  account_replication_type = 'LRS'

  tags = {
    environment = 'dev'
  }
}

Alur Kerja Terraform: Init, Plan, Apply

Alur kerja inti Terraform terdiri dari tiga Step. terraform init mengunduh provider AzureRM dan menyiapkan backend. terraform plan membandingkan konfigurasi Anda dengan state saat ini dan menampilkan perbedaan mengenai hal yang akan dibuat, diubah, atau dihancurkan — mirip dengan what-if milik ARM. terraform apply menjalankan plan dan memperbarui Azure agar sesuai dengan konfigurasi Anda.

# Step 1: Initialise the project and download providers
terraform init

# Step 2: Preview changes (shows + create, ~ update, - destroy)
terraform plan -out=tfplan

# Step 3: Apply the plan
terraform apply tfplan

# Destroy all managed resources
terraform destroy

State Terraform

Terraform memelihara file state (terraform.tfstate) yang mencatat state saat ini dari semua resource yang dikelola dan memetakannya ke konfigurasi Anda. File ini memungkinkan Terraform mendeteksi penyimpangan antara konfigurasi dan resource yang ada di Azure. Dalam Environment tim, simpan state dari jarak jauh di Azure Storage Account (backend Terraform) agar semua anggota tim menggunakan file state yang sama.

# Configure remote state in Azure Blob Storage
terraform {
  backend 'azurerm' {
    resource_group_name  = 'tfstate-rg'
    storage_account_name = 'tfstateaccount'
    container_name       = 'tfstate'
    key                  = 'prod.terraform.tfstate'
  }
}

Autentikasi ke Azure dalam Terraform

Terraform mendukung beberapa metode autentikasi untuk Azure. Selama pengembangan lokal, gunakan az login (autentikasi Azure CLI) — Terraform akan mengambil kredensial secara otomatis. Dalam pipeline CI/CD, gunakan Service Principal dengan client secret atau sertifikat, yang diteruskan melalui variabel Environment. Untuk agen atau VM yang di-host di Azure, gunakan Identitas Terkelola sebagai metode autentikasi paling aman tanpa secret.

# Option 1: Azure CLI (local dev)
az login
terraform plan

# Option 2: Service principal via environment variables
export ARM_CLIENT_ID='00000000-0000-0000-0000-000000000000'
export ARM_CLIENT_SECRET='your-client-secret'
export ARM_SUBSCRIPTION_ID='00000000-0000-0000-0000-000000000000'
export ARM_TENANT_ID='00000000-0000-0000-0000-000000000000'
terraform plan

Modul Terraform untuk Penggunaan Kembali

Seperti modul Bicep, modul Terraform memungkinkan Anda mengemas dan menggunakan kembali pola infrastruktur. Modul adalah direktori yang berisi .tf file. Anda merujuknya dengan blok module, meneruskan input melalui variables, dan menggunakan output. Terraform Registry menyediakan ratusan modul Azure dari komunitas dan modul terverifikasi yang dapat langsung Anda gunakan, seperti modul jaringan AzureRM.

# Use a module from the Terraform Registry
module 'vnet' {
  source  = 'Azure/vnet/azurerm'
  version = '4.0.0'

  resource_group_name = azurerm_resource_group.main.name
  vnet_location       = azurerm_resource_group.main.location
  use_for_each        = true
  address_space       = ['10.0.0.0/16']
  subnet_prefixes     = ['10.0.1.0/24', '10.0.2.0/24']
  subnet_names        = ['web', 'app']
}

Kapan Memilih Terraform atau Bicep

Pilih Bicep jika organisasi Anda hanya menggunakan Azure dan menginginkan integrasi paling erat dengan fitur Azure baru (Bicep mendapatkan dukungan tipe resource baru sejak hari pertama). Pilih Terraform jika Anda mengelola resource di beberapa provider cloud, memerlukan ekosistem modul komunitas yang besar, atau lebih menyukai sintaks HCL dan rangkaian alat HashiCorp. Keduanya valid untuk deployment khusus Azure — preferensi organisasi sering kali menjadi penentu.

Mengimpor Resource yang Sudah Ada

Jika resource sudah ada di Azure sebelum Anda mulai menggunakan Terraform, Anda dapat memasukkannya ke dalam pengelolaan Terraform menggunakan terraform import. Perintah ini mengambil state resource saat ini dan menambahkannya ke file state Terraform. Setelah mengimpor, Anda harus menulis blok konfigurasi yang sesuai secara manual agar cocok dengan resource yang diimpor, lalu menjalankan terraform plan untuk memastikan tidak ada perbedaan.

# Import an existing resource group into Terraform state
terraform import \
  azurerm_resource_group.main \
  '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/existing-rg'

# Terraform 1.5+ supports import blocks in configuration
import {
  to = azurerm_resource_group.main
  id = '/subscriptions/00000000.../resourceGroups/existing-rg'
}

Praktik Terbaik Terraform di Azure

Ikuti praktik terbaik berikut untuk Terraform di Azure: simpan state dari jarak jauh di Azure Blob Storage dengan penguncian state yang diaktifkan, gunakan workspace atau file state terpisah untuk Environment yang berbeda, jangan pernah memasukkan secret ke kontrol sumber — gunakan sumber data Azure Key Vault sebagai gantinya, tetapkan versi provider untuk menghindari perubahan yang merusak, dan jalankan Terraform dalam pipeline CI/CD (Azure Pipelines atau GitHub Actions) dengan tahapan persetujuan plan.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari lesson ini.

Ringkasan Lesson

Dalam lesson ini Anda telah mempelajari bahwa Terraform adalah alat IaC yang tidak bergantung pada cloud tertentu dan menggunakan provider AzureRM untuk mengelola resource Azure, alur kerja init, plan, apply memungkinkan deployment yang aman dan dapat diprediksi, serta state jarak jauh di Azure Blob Storage sangat penting untuk kolaborasi tim. Selanjutnya, kita akan membahas pembuatan App Service plan dan Web App.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Terraform di Azure” gratis?

Ya — teks lengkap “Terraform di Azure” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Terraform di Azure”?

Konfigurasikan penyedia Terraform AzureRM, tulis rencana infrastruktur dasar, lalu pahami kapan Terraform lebih tepat dipilih daripada alat ARM/Bicep asli. Kamu berlatih Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep 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 “Terraform di Azure” 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 Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep 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. Cara Kerja Azure Resource Manager
  2. Menulis Templat ARM
  3. Bicep: IaC Azure Modern
  4. Terraform di Azure
← Kembali ke Cloud & IT Cert Prep