Infrastructure as Code คืออะไร

📖 text • 8 นาที

Infrastructure as Code คืออะไร

ปัญหาของการจัดการ Infrastructure แบบเดิม

ลองนึกภาพว่าคุณต้อง setup server 10 เครื่อง — คุณต้อง:

  1. Login เข้า AWS Console
  2. คลิกสร้าง EC2 ทีละเครื่อง
  3. ตั้งค่า Security Group, VPC, Subnet ด้วยมือ
  4. จด IP ไว้ใน Google Sheets
  5. เดือนหน้าต้องทำแบบเดิมอีกรอบ...

ปัญหาคือ:

  • ช้า — คลิกซ้ำๆ ทุกครั้ง
  • ผิดพลาดง่าย — ลืม 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 ทำงานอย่างไรแบบเจาะลึก