What is Terraform?
Terraform คือ open-source IaC tool จาก HashiCorp — เขียน config ครั้งเดียว deploy ได้ทุก cloud
Terraform คืออะไร?
Terraform เป็นเครื่องมือ Infrastructure as Code ที่:
- ใช้ภาษา HCL (HashiCorp Configuration Language) เขียน config
- รองรับ provider มากกว่า 3,000+ ตัว (AWS, GCP, Azure, Cloudflare, GitHub, Datadog, ...)
- เก็บ state file เพื่อ track ว่า resource ไหนถูกสร้างไปแล้ว
- ทำ plan/apply workflow — preview ก่อนสร้างจริง
Terraform Architecture
ส่วนประกอบหลัก:
- Configuration Files (
.tf) — เขียนสิ่งที่อยากได้ - Terraform Core — engine ที่อ่าน config + คำนวณ diff
- Providers — plugin ที่คุยกับ cloud API จริง
- State File — บันทึกสถานะปัจจุบันของ infrastructure
Terraform Workflow (5 ขั้นตอน)
# 1. Init - download provider plugins
terraform init
# 2. Format - จัดรูปแบบ code
terraform fmt
# 3. Validate - เช็ค syntax
terraform validate
# 4. Plan - ดูว่าจะสร้าง/แก้/ลบอะไรบ้าง
terraform plan
# 5. Apply - ลงมือสร้างจริง
terraform apply
ภายหลังถ้าอยากลบทิ้ง:
terraform destroy
ตัวอย่าง: Hello World Terraform
สร้าง S3 bucket บน AWS ด้วย code 8 บรรทัด:
main.tf
provider "aws" {
region = "ap-southeast-1"
}
resource "aws_s3_bucket" "example" {
bucket = "my-first-terraform-bucket-2026"
}
รัน:
terraform init
terraform apply
→ ได้ S3 bucket จริงบน AWS!
Terraform เด่นเพราะอะไร?
| จุดเด่น | คำอธิบาย |
|---|---|
| Multi-cloud | code เดียวกัน deploy AWS + GCP + Azure ได้ |
| Declarative | เขียนน้อย แก้ง่าย, tool คิด execution plan ให้เอง |
| State Management | track resources ที่สร้างแล้ว → diff ได้แม่นยำ |
| Plan before Apply | preview การเปลี่ยนแปลงก่อนทำจริง |
| HCL อ่านง่าย | คล้าย JSON แต่อ่านง่ายกว่า + comment ได้ |
| Module ecosystem | มี module พร้อมใช้ในทุก use case ที่ Terraform Registry |
| Open source | ฟรี + community ใหญ่ |
License Note
ตั้งแต่ Terraform 1.6+ (Aug 2023) HashiCorp เปลี่ยน license จาก MPL → BUSL ทำให้ community fork ออกมาเป็น OpenTofu (ฟรี + open source 100%) — code/syntax เหมือนกัน 99%
Terraform vs Other IaC Tools
| Tool | ภาษา | Multi-cloud | State | ใครใช้ |
|---|---|---|---|---|
| Terraform | HCL | ✅ | ✅ | Default ในวงการ |
| CloudFormation | YAML/JSON | ❌ AWS-only | ✅ (managed by AWS) | AWS shop ที่ไม่อยาก lock-in tool ใหม่ |
| Pulumi | Python/TS/Go | ✅ | ✅ | Dev ที่อยากใช้ภาษา programming จริง |
| Ansible | YAML | ✅ | ❌ | Config mgmt มากกว่า provisioning |
| OpenTofu | HCL | ✅ | ✅ | คนที่กลัว HashiCorp BUSL license |
สรุป
- Terraform = declarative IaC tool ที่เป็น standard ของวงการ
- Workflow:
init → plan → apply → destroy - ใช้ HCL เขียน config, state file track สถานะ, provider คุยกับ cloud
- รองรับทุก cloud หลัก + service เกือบทุกอย่าง
ต่อไป → Use Cases และ Benefits