在 AWS 雲端平台中,運算資源是所有應用的基石。根據應用需求、成本考量與維運人力的不同,AWS 提供了多種運算選項,從最基礎的虛擬機到完全無伺服器的架構,都能靈活搭配。
想像一下,你要部署一個應用程式,但不想買實體伺服器。AWS 就像是一個超大的「雲端機房租賃公司」,提供各種不同規格的運算資源,並以開發者的角度來分享我的經驗。以下是五種主要的運算服務:
簡單理解: 就像在雲端租一台電腦,你可以完全控制它。
適合場景:
# 例如你有一個 Django 網站需要部署
# 在 EC2 上你需要:
sudo apt update
sudo apt install python3 nginx postgresql
pip install django
# 完全像在自己電腦上操作
實際例子:
優缺點:
簡單理解: 如果你會用 Docker,ECS 就是幫你管理多個容器的工具。
適合場景:
# 你的 Dockerfile
FROM node:22
COPY . /app
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
# ECS 任務定義(類似 docker-compose)
{
  "family": "my-app",
  "containerDefinitions": [
    {
      "name": "web-server",
      "image": "my-app:latest",
      "memory": 512,
      "portMappings": [{"containerPort": 3000}]
    }
  ]
}
實際例子:
簡單理解: 是一個讓你可以直接運行應用程式容器,而不用管理底層伺服器的雲端服務,但必須搭配其他服務使用。如EKS、ECS。
與 EC2 的差別:
# 傳統 ECS + EC2:你要管理
- EC2 instance 的規格選擇
- 作業系統更新
- 容器調度到哪台機器
# ECS + Fargate:你只需要定義
- 容器需要多少 CPU/記憶體
- 要跑幾個副本
實際例子:
成本比較:
假設運行一個小型 API:
- Fargate:$0.045/小時(1 vCPU, 2GB RAM)
- EC2 t3.small:$0.0208/小時 + 管理時間成本
→ 如果你的時間很寶貴,Fargate 可能更划算
簡單理解: 如果 Docker Compose 是玩具車,Kubernetes 就是聯結車。EKS 是 AWS 代管的 K8s。
什麼時候需要?
# 當你的應用複雜到需要這樣的配置時:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: microservice-a
spec:
  replicas: 5
  template:
    spec:
      containers:
      - name: api
        image: my-api:v2.1
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
---
apiVersion: v1
kind: Service
# ... 還有 ConfigMap、Secret、Ingress 等等
實際場景:
學習成本:
Docker 基礎 → ECS (學習曲線:1-2週)
Docker 基礎 → Kubernetes → EKS (學習曲線:2-3個月)
簡單理解: 寫一個函式,AWS 幫你跑,用多少付多少。
經典例子:
# 一個處理圖片上傳的 Lambda 函式
import json
import boto3
from PIL import Image
def lambda_handler(event, context):
    # 當有圖片上傳到 S3 時觸發
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    # 下載原圖,產生縮圖
    s3 = boto3.client('s3')
    # ... 圖片處理邏輯
    return {
        'statusCode': 200,
        'body': json.dumps('縮圖產生完成!')
    }
觸發方式:
GET /api/users → 執行查詢函式成本效益:
免費額度(每月):
- 100萬次呼叫
- 400,000 GB-秒運算時間
實際例子:
- 小型 API(每天 1000 次呼叫)→ 幾乎免費
- 圖片處理服務(每月處理 50萬張)→ 約 $10-20
- 定時任務(每小時跑 5 分鐘)→ 約 $1-5
以下為我使用的經驗及想法

新手入門路線:
避免的陷阱:
大多數個人專案和小型應用,Lambda + 一些 AWS 託管服務(如 RDS、S3)就足夠了!