AWS - API Gateway


API Gateway

Amazon API Gateway 是一個全託管的服務,用來 建立、發布、保護、監控與維護 API,
讓用戶可以透過 HTTP / WebSocket API 安全地與後端服務(如 Lambda、ECS、EC2、DynamoDB)溝通。

API Gateway 是你的系統「大門口」。
它接收外部請求、檢查身份、限制流量,然後再轉送到你的後端服務。


核心功能

功能說明
🌐 建立 API提供 REST、HTTP、WebSocket 三種類型的 API
🔒 安全控管支援 IAM、Cognito、Lambda Authorizer、API Key
⚙️ 整合多種後端Lambda、ECS、EC2、S3、DynamoDB、HTTP endpoint
📊 監控與記錄整合 CloudWatch Logs / Metrics
🚦 流量控制Throttling、Caching、Rate Limiting
💰 按使用量付費依 API 請求數計費(無需伺服器)

API 類型比較

類型用途特點
REST API舊版完整功能支援 API Key、Usage Plan、Mapping Template(legacy)
HTTP API輕量快速、低成本整合 Lambda、HTTP backend、Cognito
WebSocket API即時雙向通訊用於聊天、即時遊戲、IoT 裝置控制

新專案:用 HTTP API
舊專案或進階需求(Transformation、API Key):用 REST API
即時應用:用 WebSocket API


運作架構(REST / HTTP API)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[ Client ]


[ API Gateway ]

├─ Authorization (Cognito / IAM / Lambda Authorizer)

├─ Request Transformation (Mapping Template)

├─ Caching / Throttling / Metrics


[ Backend ]
├─ AWS Lambda
├─ ECS / EC2
├─ S3 / DynamoDB
└─ Other HTTP endpoint

驗證與授權機制

機制說明適用
IAM Auth使用 AWS IAM Policy 驗證(SigV4 簽署)內部服務呼叫
Cognito User Pool Authorizer使用者登入後 JWT Token 驗證前端應用(Web/App)
Lambda Authorizer (Custom)使用自訂邏輯驗證SSO 或自訂憑證
API Key + Usage Plan控制配額與速率第三方 API 存取

Cognito 適合「App 登入」場景,
IAM 適合「Server to Server」內部調用,
Lambda Authorizer 適合「企業自訂邏輯」。


效能優化機制

機制功能效益
Caching在 API Gateway 層緩存結果降低 Lambda 負載
Throttling / Quotas限制每秒請求數防止濫用
Request Validation自動檢查輸入格式減少後端錯誤
Compression (GZIP)減少回應大小提升速度
Integration Timeout最多 29 秒控制後端延遲風險
更新於