Terraform Modules: Reusable Configuration Units

Terraform Modules: Reusable Configuration Units

Module คือกลไกหลักของ Terraform สำหรับรวบรวม resource หลายตัวที่ใช้งานร่วมกันให้กลายเป็นหน่วยเดียวที่สามารถเรียกใช้ซ้ำได้ทุก environment เปรียบได้กับฟังก์ชันใน programming หรือ package ที่ทีมอื่นสามารถ import ไปใช้ได้ การเขียน configuration แบบ module-based จะช่วยลดโค้ดซ้ำ เพิ่มความสม่ำเสมอของ infra

Terraform Output: Export ค่า สำหรับใช้ใน Scripts หรือ Outputs

Terraform Output: Export ค่า สำหรับใช้ใน Scripts หรือ Outputs

Output Value เป็นอีกหนึ่งกลไกหลักของ Terraform ที่ทำให้ค่าภายใน configuration ถูก "ส่งออก" ไปยังผู้ใช้งานหรือระบบภายนอก เช่น CI/CD pipeline, script ที่เรียก terraform output, หรือ module อื่นที่ consume module นี้ หากไม่มี output การสร้าง resource ก็เหมือนกล่องดำ — ผู้ใช้ไม่รู้ว่า IP, endpoint, หรือ

Terraform Locals: จัดกลุ่ม Configuration Values

Terraform Locals: จัดกลุ่ม Configuration Values

Local value หรือ locals block ใน Terraform คือกลไกสำหรับตั้งชื่อให้กับนิพจน์หรือค่าที่คำนวณได้ เพื่อใช้งานซ้ำในหลายจุดของ configuration หากเคยเขียน programming มาก่อน locals เทียบได้กับ constant หรือ helper variable ภายในฟังก์ชัน ต่างจาก input variable ตรงที่ผู้ใช้จากภายนอก ไม่สามารถ เปลี่ยนค่าของ l

Variable: Input และ Output ใน Terraform

Variable: Input และ Output ใน Terraform

Variable เป็นกลไกที่ทำให้ Terraform configuration สามารถนำกลับมาใช้ซ้ำได้ในหลายสภาพแวดล้อม เพราะค่าต่าง ๆ เช่น region, size, domain name ไม่ได้ถูก hardcode ลงในโค้ด แต่ส่งผ่านจากภายนอก ทำให้โปรเจกต์เดียวสามารถสร้าง dev ขนาดเล็กและ prod ขนาดใหญ่ได้โดยไม่ต้องแก้ไฟล์ .tf เลย การออกแบบ variable ที่ดีตั้

Resource และ Data Source ใน Terraform

Resource และ Data Source ใน Terraform

Resource และ Data Source เป็นสองสิ่งที่ผู้ใช้ Terraform ต้องเข้าใจให้ดีที่สุด เพราะเป็นส่วนที่สร้างและอ่านข้อมูลจาก cloud provider แบบที่ทุก configuration ต้องใช้ Resource คือของที่ Terraform สร้าง ลบ และแก้ไขให้ ส่วน Data Source คือของที่มีอยู่แล้วและต้องการดึงข้อมูลมาใช้ ความเข้าใจผิดระหว่างสองสิ่

โครงสร้างไฟล์ Terraform โปรเจกต์แรก

โครงสร้างไฟล์ Terraform โปรเจกต์แรก

เมื่อติดตั้ง Terraform และเชื่อม provider ได้แล้ว ขั้นตอนถัดไปคือการออกแบบโครงสร้างไฟล์ของโปรเจกต์ให้เป็นระเบียบตั้งแต่แรก การวางโครงสร้างที่ดีช่วยให้ทีมเปิดไฟล์แล้วรู้ทันทีว่าส่วนไหนทำอะไร ไม่ต้องไล่อ่าน config พันบรรทัดในไฟล์เดียว และยังทำให้การแยก module ในอนาคตง่ายขึ้น บทความนี้อธิบายไฟล์มาตรฐาน

พื้นฐานไวยากรณ์ HCL สำหรับ Terraform

พื้นฐานไวยากรณ์ HCL สำหรับ Terraform

HashiCorp Configuration Language หรือ HCL เป็นภาษาที่ออกแบบมาเพื่ออธิบายโครงสร้างพื้นฐาน (infrastructure) ในรูปแบบประกาศ (declarative) อ่านง่ายทั้งคนและเครื่อง ใช้เป็นภาษาหลักใน Terraform, Vault, Consul และ Nomad ผู้ที่เพิ่งเริ่มต้นควรเข้าใจไวยากรณ์พื้นฐานก่อน เพราะทุก resource ที่เขียนในโปรเจกต์ล้ว

เชื่อม Terraform กับ DigitalOcean Provider

เชื่อม Terraform กับ DigitalOcean Provider

DigitalOcean Provider เป็นหนึ่งในปลั๊กอินที่ได้รับความนิยมสำหรับทีมที่ใช้ Cloud ราคาประหยัดจัดการ Droplet, Spaces, Managed Database, Kubernetes และ Load Balancer การเชื่อมต่อ DigitalOcean กับ Terraform ทำได้ง่ายกว่า AWS เพราะใช้ API Token ชุดเดียวและไม่มี region/account ซ้อนกันซับซ้อน เหมาะสำหรับองค

ตั้งค่า AWS Provider ใน Terraform อย่างปลอดภัย

ตั้งค่า AWS Provider ใน Terraform อย่างปลอดภัย

AWS Provider เป็นปลั๊กอินที่ทำให้ Terraform สื่อสารกับ API ของ Amazon Web Services ได้ ครอบคลุมทรัพยากรหลักทุกประเภท ทั้ง EC2, S3, RDS, VPC, IAM และอีกนับพัน resource types การเชื่อมต่อที่ถูกต้องตั้งแต่ต้นจะช่วยให้ pipeline ที่เขียนต่อไปมีความเสถียร ลดปัญหาเรื่อง credentials หมดอายุ หรือ region ผิดต

ติดตั้ง Terraform บน Cloud VPS และ Local Machine

ติดตั้ง Terraform บน Cloud VPS และ Local Machine

การเริ่มต้นใช้งาน Terraform ขั้นแรกคือการติดตั้ง CLI ลงในเครื่องที่จะใช้งาน ไม่ว่าจะเป็นเครื่องคอมพิวเตอร์ของนักพัฒนาเอง หรือเซิร์ฟเวอร์ Cloud VPS ที่ใช้รัน pipeline อัตโนมัติ Terraform เป็นไฟล์ binary ไฟล์เดียวที่เขียนด้วยภาษา Go จึงไม่ต้องติดตั้ง runtime หรือ dependency เพิ่มเติมใด ๆ ทำให้การติดตั

LINE CHAT