Infrastructure as Code คืออะไร
📖 text • 8 นาทีInfrastructure as Code คืออะไร
ปัญหาของการจัดการ Infrastructure แบบเดิม
ลองนึกภาพว่าคุณต้อง setup server 10 เครื่อง — คุณต้อง:
- Login เข้า AWS Console
- คลิกสร้าง EC2 ทีละเครื่อง
- ตั้งค่า Security Group, VPC, Subnet ด้วยมือ
- จด IP ไว้ใน Google Sheets
- เดือนหน้าต้องทำแบบเดิมอีกรอบ...
ปัญหาคือ:
- ช้า — คลิกซ้ำๆ ทุกครั้ง
- ผิดพลาดง่าย — ลืม config บางอย่าง
- ไม่มี history — ใครแก้อะไรไปเมื่อไหร่
- ทำซ้ำไม่ได้ — สร้าง environment ใหม่ต้องเริ่มจากศูนย์
Infrastructure as Code (IaC) คือคำตอบ
IaC คือแนวคิดที่เราเขียน code เพื่ออธิบาย infrastructure ที่เราต้องการ แทนที่จะคลิกผ่าน UI
# ต้องการ EC2 1 เครื่อง? เขียนแค่นี้
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
รัน command เดียว Terraform จะสร้างให้ทั้งหมด
ข้อดีของ IaC
| แบบเดิม (Manual) | IaC |
|---|---|
| คลิกผ่าน Console | เขียน code + terraform apply |
| ไม่มี history | ใช้ Git track ทุกการเปลี่ยนแปลง |
| ทำซ้ำยาก | รัน apply ได้ไม่จำกัด |
| ผิดพลาดง่าย | Code review ก่อน apply |
| เอกสารหาย | Code คือเอกสาร |
เครื่องมือ IaC ยอดนิยม
| เครื่องมือ | ลักษณะ | ใช้กับ |
|---|---|---|
| Terraform | Declarative, Multi-cloud | AWS, GCP, Azure, ฯลฯ |
| Ansible | Procedural, Agentless | Server configuration |
| CloudFormation | Declarative, AWS only | AWS เท่านั้น |
| Pulumi | Declarative, General-purpose | Multi-cloud (ใช้ภาษา programming) |
ในคอร์สนี้เราจะโฟกัสที่ Terraform เพราะ:
- รองรับ Multi-cloud (ไม่ผูกกับ provider เดียว)
- Community ใหญ่ มี module ให้ใช้เยอะ
- เรียนรู้ง่าย ภาษา HCL อ่านเข้าใจได้ทันที
- เป็น standard ของตลาด DevOps
สรุป
IaC เปลี่ยนวิธีจัดการ infrastructure จาก "คลิก" เป็น "เขียน code" ทำให้:
- Reproducible — สร้างซ้ำได้เหมือนเดิมทุกครั้ง
- Versionable — track การเปลี่ยนแปลงใน Git
- Reviewable — ทีมตรวจสอบก่อน apply
- Automatable — รันผ่าน CI/CD ได้
บทถัดไปเราจะมาดูว่า Terraform ทำงานอย่างไรแบบเจาะลึก