Lambda 區域選擇
說明如何為 Remotion Lambda 選擇最合適的 AWS 區域,包含支援的區域列表、延遲考量、定價差異與多區域部署策略。
Lambda 區域選擇
選擇正確的 AWS 區域是 Remotion Lambda 部署中的重要決策,會直接影響渲染延遲、費用與可用的並行配額。
支援的區域
Remotion Lambda 目前支援以下 AWS 區域:
| 區域代碼 | 地理位置 |
|---|---|
us-east-1 | 美國東部 - 維吉尼亞州北部 |
us-east-2 | 美國東部 - 俄亥俄州 |
us-west-1 | 美國西部 - 加利福尼亞州北部 |
us-west-2 | 美國西部 - 奧勒岡州 |
af-south-1 | 非洲 - 開普敦 |
ap-east-1 | 亞太 - 香港 |
ap-south-1 | 亞太 - 孟買 |
ap-northeast-1 | 亞太 - 東京 |
ap-northeast-2 | 亞太 - 首爾 |
ap-northeast-3 | 亞太 - 大阪 |
ap-southeast-1 | 亞太 - 新加坡 |
ap-southeast-2 | 亞太 - 雪梨 |
ca-central-1 | 加拿大 - 中部 |
eu-central-1 | 歐洲 - 法蘭克福 |
eu-west-1 | 歐洲 - 愛爾蘭 |
eu-west-2 | 歐洲 - 倫敦 |
eu-west-3 | 歐洲 - 巴黎 |
eu-north-1 | 歐洲 - 斯德哥爾摩 |
eu-south-1 | 歐洲 - 米蘭 |
me-south-1 | 中東 - 巴林 |
sa-east-1 | 南美洲 - 聖保羅 |
設定預設區域
透過環境變數設定預設區域,適用於 CLI 指令:
# 在 .env 檔案中設定
REMOTION_AWS_REGION=ap-northeast-1注意:REMOTION_AWS_REGION 環境變數不適用於 Node.js API 呼叫,Node.js API 必須在每次呼叫時明確傳入 region 參數。
透過 CLI 指定區域
所有 CLI 指令均可使用 --region 旗標覆蓋預設設定:
# 部署函式到東京區域
npx remotion lambda functions deploy --region ap-northeast-1
# 部署站台到新加坡區域
npx remotion lambda sites create src/index.ts --region ap-southeast-1
# 在指定區域進行渲染
npx remotion lambda render <serve-url> <composition> --region eu-central-1透過 Node.js API 指定區域
import { deployFunction, deploySite, renderMediaOnLambda } from "@remotion/lambda";
// 部署函式到東京區域
const { functionName } = await deployFunction({
region: "ap-northeast-1",
timeoutInSeconds: 120,
memorySizeInMb: 2048,
createCloudWatchLogGroup: true,
});
// 部署站台到相同區域
const { serveUrl } = await deploySite({
bucketName: "remotionlambda-ap-northeast-1-xxxxx",
entryPoint: "src/index.ts",
region: "ap-northeast-1",
siteName: "my-video",
});
// 在相同區域渲染
const { renderId } = await renderMediaOnLambda({
region: "ap-northeast-1",
functionName,
serveUrl,
composition: "MyVideo",
inputProps: {},
codec: "h264",
});延遲考量
選擇區域時,應考量以下延遲因素:
- API 呼叫延遲:從你的伺服器到 AWS Lambda 的網路延遲。選擇距離伺服器最近的區域可減少啟動渲染的等待時間。
- S3 傳輸延遲:渲染完成後從 S3 下載影片的速度。若使用者分佈在特定地區,選擇靠近使用者的區域更為合適。
- 冷啟動時間:Lambda 函式的冷啟動時間在各區域差異不大,但熱門區域(如
us-east-1)因基礎設施更成熟,整體表現可能略優。
各區域定價比較
不同區域的 Lambda 執行費用有所差異(每 GB-秒費率,供參考,以 AWS 官方定價頁面為準):
| 區域 | 相對費用 |
|---|---|
us-east-1, us-east-2, us-west-2 | 基準費率(最低) |
eu-west-1, eu-central-1 | 與美國東部相近 |
ap-northeast-1, ap-southeast-1 | 略高於美國區域 |
ap-east-1(香港) | 較高 |
af-south-1(開普敦) | 較高 |
me-south-1(巴林) | 較高 |
多區域部署策略
若你需要更高的並行能力或更好的全球覆蓋率,可以考慮多區域部署:
import { renderMediaOnLambda } from "@remotion/lambda";
// 根據使用者位置路由到最近的區域
const getRegionForUser = (userContinent: string) => {
const regionMap: Record<string, string> = {
"asia": "ap-northeast-1",
"europe": "eu-central-1",
"americas": "us-east-1",
};
return regionMap[userContinent] ?? "us-east-1";
};
const region = getRegionForUser(user.continent);
const { renderId } = await renderMediaOnLambda({
region,
// ...其他參數
});多區域部署的優點包含:
- 總並行配額翻倍(每個區域各有獨立的 200 個並行限制)
- 降低終端使用者的延遲體驗
- 提高系統可用性(單一區域故障不影響整體服務)
啟用非預設區域
部分 Remotion 支援的 AWS 區域在新帳戶中預設未啟用(例如 af-south-1、ap-east-1、eu-south-1、me-south-1)。
若遇到以下錯誤,表示需要手動啟用該區域:
The security token included in the request is invalid
啟用步驟:
- 前往 AWS 管理主控台
- 點擊右上角帳戶名稱,選擇「帳戶」
- 向下捲動至「AWS 區域」區塊
- 找到目標區域,點擊「啟用」
重要限制
- 函式與 S3 儲存桶必須位於同一區域:不支援跨區域渲染,Lambda 函式和用於儲存渲染結果的 S3 儲存桶必須在同一個 AWS 區域內。
- 不同區域需分別部署:若要在多個區域渲染,需要在每個區域各自部署一次函式和站台。