Terraform thực chiến

Học Terraform bằng cách xây hạ tầng thật

19 bài tiếng Việt được biên soạn lại từ series tiếng Anh của DevOps VN, tập trung vào cách suy nghĩ, lệnh cần chạy, cấu trúc code và những lỗi thường gặp khi làm việc với AWS, CI/CD và state.

Trong series này bạn sẽ làm được
  • Viết và kiểm tra HCL có thể lặp lại.
  • Tách module, backend và môi trường.
  • Đưa Terraform vào CI/CD an toàn.
  • Xử lý drift, secret và triển khai ít downtime.
Cách học hiệu quả

Đọc — chạy plan — tự phá — khôi phục

  1. Đọc mục tiêu và điều kiện đầu vào của bài.
  2. Copy ví dụ vào một thư mục lab riêng, chạy fmt, validate, plan.
  3. Thay một giá trị, đọc plan và ghi lại vì sao Terraform chọn hành động đó.
  4. Chạy cleanup, sau đó viết lại từ trí nhớ hoặc biến ví dụ thành module của bạn.
Quy tắc an toàn

Lab không được biến thành hóa đơn

  • Dùng AWS sandbox hoặc account riêng có budget alert.
  • Không đặt access key, password hoặc state vào Git.
  • Đọc plan trước mọi apply; đặc biệt khi có destroy/replace.
  • Luôn có bước destroy hoặc cleanup rõ ràng trong lab.
19 bài theo đúng thứ tự học

Từ “hello Terraform” đến production

Không cần đọc một lần hết. Mỗi bài đều có thể tách thành một buổi lab nhỏ.

00

IaC và Terraform: bắt đầu từ vấn đề thật

Hiểu Infrastructure as Code, Terraform state và quy trình tạo một EC2 đầu tiên mà không phải click thủ công trong AWS Console.

Đọc bài →
01

Workspace và file cấu hình Terraform

Tạo một project Terraform có version pinning, chạy plan/apply có kiểm soát và hiểu data source trong một cấu hình thực tế.

Đọc bài →
02

Vòng đời resource và hiện tượng drift

Đọc plan như một kỹ sư vận hành: phân biệt create, update, replace, no-op và xử lý khi infrastructure bị sửa ngoài Terraform.

Đọc bài →
03

Lập trình trong Terraform: biến, output và vòng lặp

Dùng input variable, validation, output, count, for expression và function để tránh copy-paste cấu hình giữa các môi trường.

Đọc bài →
04

Deploy website tĩnh lên S3 bằng Terraform

Tự động tạo bucket, upload cả thư mục static bằng fileset và kiểm soát cache cho từng loại file.

Đọc bài →
05

Xây VPC AWS bằng Terraform module

Từ VPC viết tay đến module có input/output, hiểu subnet public/private, NAT Gateway và cách tái sử dụng cấu hình mạng.

Đọc bài →
06

Dựng hạ tầng cho ứng dụng thật bằng nhiều module

Ghép networking, database và autoscaling thành một root module có ranh giới rõ ràng, output rõ và dễ thay đổi.

Đọc bài →
07

Terraform Backend là gì và vì sao team cần nó?

Hiểu local state, standard backend, remote backend và cách chọn nơi lưu state khi nhiều người cùng thay đổi hạ tầng.

Đọc bài →
08

Dùng S3 làm standard backend

Tạo bucket backend đúng cách, bật versioning và locking, sau đó migrate một project từ local state sang S3.

Đọc bài →
09

HCP Terraform làm remote backend

Tổ chức state theo workspace, kết nối repository và đưa variable/secret ra khỏi laptop để team làm việc an toàn hơn.

Đọc bài →
10

CI/CD với HCP Terraform và triển khai ít downtime

Kết nối repository với workspace, review plan tự động và phân biệt create_before_destroy với zero-downtime thực sự.

Đọc bài →
11

Blue/Green deployment bằng Terraform

Duy trì hai phiên bản môi trường, kiểm tra green rồi chuyển traffic có thể rollback về blue.

Đọc bài →
12

A/B testing deployment với CloudFront

Định tuyến một phần người dùng sang phiên bản B bằng CloudFront và edge function, đồng thời hiểu các giới hạn vận hành.

Đọc bài →
13

Kết hợp Ansible với Terraform

Phân biệt provisioning và configuration management, dùng provisioner đúng chỗ và chuyển sang Ansible khi máy đã tồn tại.

Đọc bài →
14

CI/CD cho Terraform với GitLab CI

Xây pipeline fmt, validate, plan và apply theo môi trường; dùng artifacts và manual approval thay vì apply mọi commit.

Đọc bài →
15

Xây CI/CD Terraform với Jenkins

Chuẩn bị repository, credential và backend rồi tạo Jenkins pipeline có kiểm tra, plan, approval và apply rõ ràng.

Đọc bài →
16

Multi-cloud với nhiều Terraform provider

Cấu hình AWS và GCP trong cùng project, hiểu provider alias và thiết kế kết nối mạng thay vì chỉ copy hai resource.

Đọc bài →
17

Bảo mật log và Terraform state

Nhận diện nơi secret có thể lọt ra, dùng sensitive đúng cách và bảo vệ state bằng backend, IAM, encryption và versioning.

Đọc bài →
18

Khi Terraform state lệch infrastructure thật

Điều tra drift, dùng refresh-only, import block và state command để đưa resource có sẵn về đúng mô hình quản lý.

Đọc bài →