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 秒 |
控制後端延遲風險 |