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