CHƯƠNG 14 · Cloud Architecture & FinOps•BÀI 54 / 80

Terraform S3 remote state và locking

Làm việc theo nhóm cần một nguồn state có thể bảo vệ và phối hợp.

Cloud◷ 4 phút đọc2/4 trong chương

Nắm bản chất

S3 backend lưu Terraform state từ xa. use_lockfile = true hỗ trợ state locking dựa trên S3; DynamoDB-based locking cũ đã deprecated. State bucket nên bật encryption, versioning, Block Public Access và IAM least privilege.

Bootstrap bucket phải tồn tại trước khi dùng làm backend. Thường dùng stack bootstrap riêng, giữ state/bootstrap credentials an toàn. Tách state theo account/environment và có recovery runbook khi state bị xóa hoặc corruption.

Luồng hoạt động

bootstrap bucket→S3 state→lockfile

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

terraform {
  backend "s3" {
    bucket       = "YOUR-STATE-BUCKET"
    key          = "prod/platform.tfstate"
    region       = "ap-southeast-1"
    encrypt      = true
    use_lockfile = true
  }
}

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Lab Buổi 14 có bootstrap folder và backend examples. Chạy offline checks và terraform init -backend=false trước nếu chưa muốn tạo AWS resources.

Lỗi dễ mắc

!

Không dùng local state trên laptop như single source of truth của team production; không commit backend credentials hoặc state vào Git.

Tự kiểm tra

`use_lockfile=true` nhằm mục đích gì?Xem đáp án ↗

Giúp tránh các Terraform operations đồng thời gây xung đột khi cập nhật cùng một S3 state.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.

↓ Tải mã nguồn thực hành chương 14
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗