Skip to main content

Terraform

Terraform

Mastering Terraform — เอกสารสอน Terraform ตั้งแต่พื้นฐานจนถึง enterprise-level จัดเรียงตาม roadmap.sh / Terraform

Terraform คืออะไร?

Terraform เป็นเครื่องมือ Infrastructure as Code (IaC) จาก HashiCorp ที่ช่วยให้เราสร้าง จัดการ และทำลาย infrastructure (เช่น servers, networks, databases) ได้ผ่านการเขียน config file แทนการคลิกใน console

แทนที่จะคลิกสร้าง EC2 ทีละตัวใน AWS Console เราเขียนเป็น code ครั้งเดียว แล้วรัน:

terraform apply

Terraform จะไปสร้าง infrastructure ให้ตาม config — และเก็บ state ไว้ track ว่า resource ไหนถูกสร้างไปแล้ว

ทำไมต้องเรียน Terraform?

  • Multi-cloud — รองรับ AWS, GCP, Azure, Cloudflare ฯลฯ ใช้ syntax เดียวกันหมด
  • Declarative — เขียนว่า "อยากได้อะไร" ไม่ต้องเขียน "สร้างยังไง"
  • Version Control — config อยู่ใน Git → review ได้, rollback ได้, audit ได้
  • Industry Standard — เป็นมาตรฐาน DevOps ทั่วโลก, JD ส่วนใหญ่ขอ

Roadmap (อ้างอิง roadmap.sh)

ใน document นี้แบ่งเป็น 19 sections หลัก ตาม Mastering Terraform Roadmap:

#Sectionสิ่งที่เรียน
1IntroductionIaC, Terraform คืออะไร, ติดตั้ง
2HCL LanguageHashiCorp Configuration Language syntax
3Providers & InitializationProvider, Registry, terraform init
4ResourcesResource block, lifecycle, meta-arguments
5VariablesInput vars, types, validation, locals
6OutputsOutput values, sensitive, preconditions
7Format & Validatefmt, validate, TFLint
8Deploymentplan, apply
9Clean Updestroy
10State ManagementState file, remote backend, locking
11State Commandsstate list/mv/rm, import
12ModulesReusable code blocks
13Provisionerslocal-exec, remote-exec, file
14Data Sourcesอ่านข้อมูลจาก provider
15CI/CD & WorkspacesGitHub Actions, GitLab CI, Jenkins
16TestingUnit, contract, integration, E2E
17Scaling TerraformTerragrunt, Infracost, parallelism
18SecurityVault, Sentinel, Checkov, Trivy
19HCPHashiCorp Cloud Platform

วิธีเรียนที่แนะนำ

คำแนะนำ
  1. เริ่มจาก Section 1-3 ให้เข้าใจ IaC + ติดตั้ง + เขียน HCL ได้
  2. ลงมือจริงตั้งแต่ Section 4 — เปิด AWS Free Tier แล้วลอง terraform apply กับ S3 bucket อันแรก
  3. ห้ามข้าม State Management (Section 10) — เป็นหัวใจของ Terraform หลายคนใช้ผิด
  4. Modules (Section 12) จะใช้บ่อยมากใน production — ฝึกสร้างเอง
  5. Section 15-19 เก็บไว้เรียนตอนเริ่มทำงานจริงในทีม

Prerequisite

ก่อนเริ่มเรียน Terraform ควรมีพื้นฐานดังนี้:

  • Cloud Concept — เข้าใจ EC2, S3, VPC (อย่างน้อยใน AWS section)
  • Command Line — ใช้ Terminal (bash/zsh) ได้
  • Git — push/pull/branch
  • YAML/JSON — อ่านออก เขียนได้

ไม่จำเป็นต้องเก่ง programming — HCL syntax ง่ายกว่า general programming language มาก

เริ่มต้นที่นี่ →

ไปที่ Section 1: Introduction เพื่อเริ่มเรียน Terraform

แหล่งเรียนรู้เพิ่มเติม