CloudFormation และ IaC
สร้างโครงสร้างพื้นฐานด้วยไฟล์เทมเพลต
เมื่อเราจดสูตร (โค้ด) ไว้ครบถ้วนแล้ว ไม่ว่าจะสั่งให้ทำอาหารจานนี้อีกกี่สิบครั้ง รสชาติและหน้าตาก็จะออกมาเหมือนเดิมเป๊ะ ไม่ต้องใช้ความรู้สึกกะเอาเอง (การคลิกหน้าเว็บด้วยมือ)
พื้นฐานที่ควรรู้: การกดสร้างเซิร์ฟเวอร์หรือเน็ตเวิร์กผ่านหน้าเว็บ (Console) เป็นวิธีที่ง่ายและเหมาะกับการเรียนรู้ แต่ในโลกการทำงานจริง ถ้าระบบมีเป็นร้อยๆ ชิ้น การคลิกมือจะกินเวลา นำไปสู่ข้อผิดพลาด และเอาไปสร้างซ้ำได้ยาก
AWS CloudFormation คือเครื่องมือสำหรับทำ IaC (Infrastructure as Code - โครงสร้างพื้นฐานเสมือนโค้ด) ให้เราสามารถนิยามสถาปัตยกรรมทุกอย่างเป็นไฟล์ตัวหนังสือ (รูปแบบ YAML หรือ JSON ที่เรียกว่า Template) แล้วให้ AWS อ่านไฟล์นี้เพื่อกางทรัพยากรทั้งชุด (Stack) ขึ้นมาให้อัตโนมัติ
- สร้าง, อัปเดต, และลบทรัพยากรทั้งหมดในก้อนเดียวกันพร้อมกัน (เรียกก้อนนี้ว่า Stack)
- ทำซ้ำสถาปัตยกรรมข้าม Environment (Dev/Staging/Prod) หรือข้าม Region ได้ตรงกัน 100%
- เก็บเวอร์ชัน (Version Control) เทมเพลตไว้ใน Git ได้เหมือนโค้ดแอปพลิเคชันทั่วไป ทำให้รู้ว่าใครแก้ระบบเมื่อไหร่
สรุป Key Takeaways
- CloudFormation = IaC สร้าง infra จากเทมเพลตซ้ำได้ตรงกัน
- ลดข้อผิดพลาด ทำซ้ำข้าม environment และ version control ได้
คำถามที่พบบ่อย
Infrastructure as Code ให้ประโยชน์อะไรที่กดหน้า console ไม่ให้
ทำซ้ำได้เป๊ะ (dev/prod เหมือนกัน), review การเปลี่ยนแปลงเหมือนโค้ด, เก็บประวัติใน git, และกู้ระบบ/สร้าง region ใหม่ได้จาก template เดียว — โจทย์ "deploy ซ้ำหลาย environment/หลาย region อย่างสม่ำเสมอ" = CloudFormation
Drift detection คืออะไร
การตรวจว่า resource จริงถูกใครไป "แก้มือ" จนต่างจาก template ไหม — สำคัญเพราะการแก้นอก IaC ทำให้ deploy ครั้งถัดไปผลไม่แน่นอน ข้อสอบถาม "ตรวจว่า stack ยังตรงกับ template ไหม" = drift detection
Change set มีไว้ทำไม
พรีวิวว่าการอัปเดต stack จะเปลี่ยน/ลบ resource อะไรบ้าง "ก่อน" ลงมือจริง — กันเหตุการณ์คลาสสิกอย่าง update แล้ว CloudFormation ตัดสินใจ replace ฐานข้อมูล — โจทย์ "ตรวจผลกระทบก่อน update production stack" = change set
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

