一鍵部署

Vibe Prompt

「幫我用 Terraform 建立完整的 Web 服務架構:VPC + ALB + ECS Fargate + RDS。」

# main.tf - 完整 Web 架構
module "vpc" {
  source = "./modules/vpc"
  vpc_cidr = "10.0.0.0/16"
  environment = "production"
  public_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
  private_subnets = ["10.0.10.0/24", "10.0.20.0/24"]
}

resource "aws_ecs_cluster" "main" {
  name = "web-cluster"
}

resource "aws_ecs_service" "web" {
  name = "web-service"
  cluster = aws_ecs_cluster.main.id
  task_definition = aws_ecs_task_definition.web.arn
  desired_count = 2
  launch_type = "FARGATE"
  network_configuration {
    subnets = module.vpc.public_subnet_ids
    security_groups = [aws_security_group.web.id]
    assign_public_ip = true
  }
}

resource "aws_db_instance" "main" {
  engine = "postgres"
  instance_class = "db.t3.micro"
  allocated_storage = 20
  db_name = "myapp"
  username = "admin"
  password = var.db_password
  skip_final_snapshot = true
  db_subnet_group_name = aws_db_subnet_group.main.name
}

output "alb_dns" {
  value = aws_lb.main.dns_name
}

課程總結

Terraform 課程完成!

  • ✅ HCL 語法
  • ✅ 遠端 State
  • ✅ Modules
  • ✅ 多環境
  • ✅ 一鍵部署

關鍵要點

  • ✅ Terraform = Infrastructure as Code (IaC) 的業界標準
  • ✅ HCL (HashiCorp Configuration Language) 宣告式定義基礎設施
  • terraform plan 顯示將要做的變更,apply 執行變更
  • ✅ State File (terraform.tfstate) 是真實世界的來源比對
  • ✅ Module 讓基礎設施程式碼可以重用

常用命令

| 命令 | 用途 | |------|------| | terraform init | 初始化工作目錄,下載 Provider | | terraform fmt | 格式化程式碼 | | terraform validate | 驗證語法正確性 | | terraform plan | 顯示執行計畫 | | terraform apply | 執行變更 | | terraform destroy | 刪除所有資源 | | terraform state list | 列出 State 中的所有資源 |



一鍵部署完整環境

你已經學會了 Terraform 基礎、State 管理、Module 封裝、多環境管理。最後一章把這一切整合起來——讓你只需要執行一個指令,就能建立完整的生產環境。

最終目錄結構

terraform/
├── modules/
│   ├── vpc/
│   ├── ecs/
│   ├── rds/
│   └── monitoring/
├── environments/
│   ├── dev/
│   │   ├── main.tf
│   │   ├── terraform.tfvars
│   │   └── backend.tf
│   ├── staging/
│   └── prod/
├── global/
│   └── iam.tf
└── scripts/
    └── deploy.sh

部署腳本

#!/bin/bash
# scripts/deploy.sh

ENV=${1:-dev}

echo "🚀 部署至 $ENV 環境"

cd environments/$ENV

# 初始化(包含遠端 State 設定)
terraform init

# 查看將要做的變更
terraform plan -out=tfplan

# 自動批准部署
echo "部署中..."
terraform apply -auto-approve tfplan

echo "✅ $ENV 環境部署完成!"

CI/CD 整合

name: Terraform Deploy

on:
  push:
    branches: [main]
    paths:
      - 'terraform/**'

jobs:
  terraform:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: hashicorp/setup-terraform@v3
      - run: terraform init
      - run: terraform plan
      - run: terraform apply -auto-approve

課程總結

| 章節 | 主題 | 你學會了 | |:----:|:----:|:--------:| | 1 | Terraform 基礎 | HCL 語法、Provider、資源定義 | | 2 | State 管理 | 遠端 State、鎖定、協作 | | 3 | Module | 封裝與重用基礎設施程式碼 | | 4 | 多環境 | Workspace、目錄結構、TFVars | | 5 | 一鍵部署 | 完整 CI/CD Pipeline |

你現在已經具備了使用 Terraform 管理真實世界雲端基礎設施的完整能力。

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!