Mendalami cara mendefinisikan resource, mengelola lifecycle, dan menangani dependency antar resource. Ini adalah inti dari penulisan konfigurasi Terraform.
Apa yang Akan Dipelajari? #
Resource adalah blok konfigurasi terpenting dalam Terraform — setiap resource merepresentasikan satu objek infrastruktur. Memahami cara mendefinisikan resource, mengelola dependency antar resource, mengatur lifecycle, dan menggunakan locking adalah keterampilan fundamental.
Artikel dalam Section Ini #
| Artikel | Topik Utama |
|---|---|
| Apa itu Resource? | Konsep resource sebagai unit dasar infrastruktur yang dikelola |
| Dependency | Mengelola urutan pembuatan dan ketergantungan antar resource |
| Lifecycle | Mengontrol perilaku resource saat create, update, dan destroy |
| Operation | Create, Read, Update, Delete (CRUD) — lifecycle resource operations |
| Locking | Mencegah concurrent modification pada state file |
Dependency Visualization #
flowchart TD
subgraph Network Layer
VPC["AWS VPC"]
Subnet["Subnet"]
SG["Security Group"]
end
subgraph Compute Layer
EC2["EC2 Instance"]
ASG["Auto Scaling Group"]
ALB["Application LB"]
end
subgraph Data Layer
RDS["RDS Database"]
S3["S3 Bucket"]
end
VPC --> Subnet
Subnet --> EC2
Subnet --> ALB
Subnet --> RDS
SG --> EC2
SG --> ALB
SG --> RDS
ALB --> ASG
ASG --> EC2
style Network Layer fill:#e3f2fd
style Compute Layer fill:#e8f5e9
style Data Layer fill:#fff3e0Resource Lifecycle #
flowchart LR
Create["Create<br/>Pembuatan"] --> Read["Read<br/>Pembacaan"]
Read --> Update["Update<br/>Perubahan"]
Update --> Destroy["Destroy<br/>Penghapusan"]
Destroy -.->|Recreate| Create
style Create fill:#e8f5e9
style Read fill:#e3f2fd
style Update fill:#fff3e0
style Destroy fill:#ffebeeMeta-Argument Lifecycle #
resource "aws_instance" "web" {
ami = "ami-12345"
instance_type = "t3.micro"
lifecycle {
create_before_destroy = true # Buat baru sebelum hapus lama
prevent_destroy = false # Lindungi dari destroy
ignore_changes = [tags] # Abaikan perubahan tags
replace_triggered_by = [var.ami_id]
}
}
Setelah memahami resource, lanjutkan ke State untuk mengetahui bagaimana Terraform melacak resource, atau ke Variable untuk mempelajari parameterization.