Section 5: ตัวแปร Output และการตั้งค่า
- การประกาศตัวแปร (Variable) ชนิดข้อมูล ค่าเริ่มต้น และการตรวจสอบค่า (Validation)
- การส่งค่าผ่าน tfvars, ตัวแปรสภาพแวดล้อม และ Command Line
- การใช้ Output ส่งค่าออกและการใช้ Local Value ลดการเขียนซ้ำ
- Lab: แปลงโค้ดที่ Hardcode ให้ยืดหยุ่นด้วยตัวแปรและ Output
Section 6: Module ที่นำกลับมาใช้ซ้ำได้
- แนวคิด Module และการออกแบบให้ใช้ซ้ำได้ในหลายโครงการ
- การเขียน Module ของตนเองและการเรียกใช้ Module จาก Terraform Registry
- การจัดโครงสร้างโปรเจกต์ให้อ่านง่ายและดูแลระยะยาวได้
- Lab: แยกโค้ดเป็น Module และเรียกใช้ซ้ำในสองสภาพแวดล้อม
Section 7: หลายสภาพแวดล้อม (Dev, Staging, Prod)
- การแยกสภาพแวดล้อมด้วย Workspace เทียบกับการแยกด้วยโครงสร้างไดเรกทอรี
- การจัดการค่าตั้งต้นที่ต่างกันในแต่ละสภาพแวดล้อมอย่างปลอดภัย
- แนวปฏิบัติการตั้งชื่อและติด Tag ทรัพยากรให้ตรวจสอบต้นทุนได้
- Lab: สร้างสภาพแวดล้อม Dev และ Prod จากโค้ดชุดเดียวกัน
Section 8: Remote State และการทำงานเป็นทีม
- การเก็บ State ไว้ส่วนกลาง (Remote Backend) และเหตุผลที่ทีมต้องใช้
- State Locking เพื่อป้องกันการแก้ไขพร้อมกันจนข้อมูลเสียหาย
- Workflow แบบทีม: Branch, Pull Request, การรีวิวผล plan ก่อน apply
- Lab: ย้าย State ขึ้น Remote Backend และทดสอบการล็อกเมื่อมีคนรันพร้อมกัน