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 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
Gõ 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)