Quay lại

BÀI 2: Bài lab cơ bản về Terraform với S3 – Tạo S3 Bucket bằng mã Chuyên mục Devops    2025-05-15    1 Lượt xem    1 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Sau khi đã hiểu về Terraform, trong bài viết này bạn sẽ tự tay tạo một bucket S3 trên AWS chỉ bằng vài dòng mã Terraform. Đây là bài lab lý tưởng để hiểu cách tổ chức file .tf, dùng biến, và triển khai hạ tầng cơ bản.


🎯 Mục tiêu của bài lab

  • Tạo một S3 Bucket

  • Áp dụng một số thiết lập:

    • ACL (Access Control List)

    • Versioning (bật lưu phiên bản file)

    • Tags (nhãn phân loại)


🛠️ Yêu cầu trước khi bắt đầu

  • Đã cài Terraform

  • Có tài khoản AWS và access key + secret key

  • Cài đặt AWS CLI (nếu muốn test bucket)

  • Cấu hình AWS credential:

    aws configure​

📁 Cấu trúc thư mục dự án

terraform-s3-lab/
├── main.tf
├── variables.tf
├── terraform.tfvars
├── outputs.tf​

🧱 Bước 1: Khai báo provider và resource (main.tf)

provider "aws" {
  region = var.region
}

resource "aws_s3_bucket" "my_bucket" {
  bucket = var.bucket_name
  acl    = var.acl

  versioning {
    enabled = var.enable_versioning
  }

  tags = {
    Name        = var.bucket_name
    Environment = "dev"
  }
}​

⚙️ Bước 2: Khai báo biến (variables.tf)

variable "region" {
  description = "AWS Region"
  default     = "us-east-1"
}

variable "bucket_name" {
  description = "Tên S3 bucket (phải unique toàn cầu)"
  type        = string
}

variable "acl" {
  description = "Access control list (private, public-read...)"
  default     = "private"
}

variable "enable_versioning" {
  description = "Bật versioning cho bucket"
  type        = bool
  default     = true
}​

📝 Bước 3: Gán giá trị biến (terraform.tfvars)

bucket_name        = "my-terraform-bucket-sondh3-demo"
enable_versioning  = true
acl                = "private"​

Lưu ý: bucket_name phải unique trên toàn bộ hệ thống AWS, nếu không sẽ báo lỗi.


📤 Bước 4: Xuất thông tin sau khi tạo (outputs.tf)

output "bucket_name" {
  value = aws_s3_bucket.my_bucket.bucket
}

output "bucket_arn" {
  value = aws_s3_bucket.my_bucket.arn
}​

🚀 Bước 5: Thực thi Terraform

terraform init
terraform plan
terraform apply​

yes khi Terraform hỏi xác nhận.


🔍 Kiểm tra kết quả

Bạn có thể kiểm tra:

  • Trên AWS Console: Dịch vụ S3 → Bucket đã tạo

  • Bằng AWS CLI:

aws s3 ls
aws s3api get-bucket-versioning --bucket my-terraform-bucket-sondh3-demo​

🧹 Dọn dẹp

Khi muốn xoá hạ tầng đã tạo:

terraform destroy​

📌 Tổng kết

Qua bài lab này, bạn đã học được:

✅ Cách khai báo resource aws_s3_bucket
✅ Dùng variables.tf và terraform.tfvars để linh hoạt hoá cấu hình
✅ Kết hợp outputs.tf để xuất thông tin sau khi tạo
✅ Triển khai và xoá resource bằng Terraform


👉 Tiếp theo: [Bài 3: Bài lab cơ bản về Terraform với EC2 – tạo máy chủ ảo AWS bằng mã]

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday