Chuyển tới nội dung chính

Bước 1: Setup môi trường

Nội dung đang được chuẩn bị. Quay lại sớm nhé!

Sắp có trong bài này

Cài đặt Terraform

macOS (Homebrew):

brew tap hashicorp/tap
brew install hashicorp/tap/terraform
terraform -version # Kiểm tra: Terraform v1.x.x

Windows (Chocolatey):

choco install terraform

Linux (Ubuntu/Debian):

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

Cài đặt AWS CLI v2

# macOS
brew install awscli

# Verify
aws --version # aws-cli/2.x.x

Cấu hình AWS Credentials

Cách 1: AWS Configure (đơn giản nhất cho local)

aws configure
# AWS Access Key ID: [your key]
# AWS Secret Access Key: [your secret]
# Default region: ap-southeast-1
# Default output format: json

Credentials được lưu tại ~/.aws/credentials~/.aws/config

Cách 2: Named Profiles (cho nhiều AWS accounts)

aws configure --profile my-dev-account
aws configure --profile my-prod-account

# Dùng profile cụ thể
export AWS_PROFILE=my-dev-account
# Hoặc trong provider.tf: profile = "my-dev-account"

Cách 3: Environment Variables (cho CI/CD)

export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_DEFAULT_REGION="ap-southeast-1"

Verify Setup

# Kiểm tra Terraform
terraform version

# Kiểm tra AWS CLI kết nối được
aws sts get-caller-identity
# Trả về: Account ID, User ARN, User ID

# Kiểm tra quyền cần thiết
aws iam get-user # Xem thông tin user hiện tại

Quyền AWS cần thiết

Để chạy series này, IAM user/role cần có quyền:

  • AmazonEC2FullAccess
  • AmazonVPCFullAccess
  • IAMFullAccess (để tạo IAM Role cho EC2)
  • AmazonS3FullAccess (cho remote state ở bài sau)
  • AmazonDynamoDBFullAccess (cho state locking)
Không dùng root account

Tạo IAM user riêng với quyền cần thiết thay vì dùng root account.

VS Code Extensions hữu ích

  • HashiCorp Terraform — syntax highlighting, autocomplete, hover docs
  • Terraform doc snippets — snippets cho resources phổ biến