Blog
Thoughts on engineering, design, and building great products.
Remote State Trên S3 Với use_lockfile
State nằm trên máy cá nhân không chia sẻ được, không an toàn, và hai người chạy cùng lúc sẽ ghi đè nhau. Bài này chuyển state lên S3: bootstrap một bucket có versioning và mã hóa, cấu hình backend, và bật khóa state bằng use_lockfile — cách hiện hành thay cho DynamoDB đã lỗi thời. Có demo xung đột lock thật.
Đồ 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.