Blog
Thoughts on engineering, design, and building great products.
Thao Tác State: import Block, state mv, state rm
Làm việc với state hằng ngày: đưa hạ tầng có sẵn vào quản lý bằng import block và tự sinh cấu hình với -generate-config-out, đổi tên resource trong state bằng state mv, và gỡ resource khỏi quản lý mà không xóa nó bằng state rm. Tất cả chạy thật trên một bucket dựng tay từ trước.
Đồ Thị Phụ Thuộc: Implicit, depends_on, và -target
Terraform tự suy ra thứ tự tạo và xóa resource từ một đồ thị phụ thuộc. Bài này mổ chính đồ thị đó: phụ thuộc ngầm sinh ra từ tham chiếu, xem trực tiếp bằng lệnh graph, vì sao destroy đảo ngược thứ tự, khi nào cần depends_on, và vì sao -target chỉ là lối thoát hiểm.
State: Terraform Lưu Gì, Vì Sao Cần, và Drift
Đào vào file state: vì sao Terraform cần nó thay vì hỏi thẳng AWS mỗi lần, nó lưu chính xác cái gì, và cơ chế refresh so ba chiều giữa cấu hình, state và thực tế. Tự tay tạo drift bằng AWS CLI rồi xem Terraform phát hiện ra sao, khác nhau giữa plan thường và plan -refresh-only.
HCL Từ Trong Ra Ngoài: Block, Kiểu Dữ Liệu, Biểu Thức
Mổ xẻ ngôn ngữ HCL cho ra ngọn ngành: cấu trúc một block gồm gì, các kiểu dữ liệu string/number/bool/list/map/null, biểu thức và hàm, cách nội suy chuỗi. Dùng terraform console để thử trực tiếp, và xem block terraform{} còn khai báo được những gì.
Provider, Resource Đầu Tiên, và Vòng Đời init plan apply destroy
Dựng resource AWS thật đầu tiên: khai báo provider và pin phiên bản, tạo một bucket S3, rồi đi trọn vòng init → plan → apply → destroy. Mỗi lệnh làm gì bên trong, vì sao plan ghi 'known after apply', state lưu cái gì, và vì sao chạy apply lần hai không tạo thêm gì.
Infrastructure as Code, Terraform Là Gì, và Làm Quen CLI
Bài mở đầu series: vì sao quản lý hạ tầng bằng tay sớm muộn cũng vỡ, Infrastructure as Code giải quyết điều gì, Terraform đứng ở đâu trong bức tranh đó. Mổ kiến trúc core và provider, cài Terraform 1.15, và đi một vòng các lệnh CLI chính.
Dọn Dẹp Toàn Bộ và Tổng Kết
Bài cuối. Cụm EC2 đã làm xong việc của nó, và để nó chạy là đốt tiền mỗi giờ. Bài này dọn sạch toàn bộ hạ tầng theo đúng thứ tự — terminate sáu instance (kéo theo ổ đĩa), trả Elastic IP, gỡ IAM role — kèm bảng chi phí thật để thấy ba lựa chọn: chạy tiếp, stop để dành, hay xóa hẳn. Rồi nhìn lại cả hành trình: từ một certificate tự ký tới một cụm Kubernetes HA vận hành đầy đủ, dựng tay từng mảnh.