AWS Batch簡介
使用 AWS Batch,您只需打包批量任務(wù)的代碼,指定其依賴關(guān)系并使用 AWS 管理控制臺、CLI 或軟件開發(fā)工具包提交批量任務(wù)。AWS Batch 不僅允許指定執(zhí)行參數(shù)和任務(wù)依賴關(guān)系,還可以促進與一系列常用批量計算工作流引擎及語言 (如 Pegasus WMS、Luigi 和 AWS Step Functions) 的集成。AWS Batch 會根據(jù)您的任務(wù)要求以動態(tài)方式有效地預(yù)置和擴展 Amazon EC2 實例和競價型實例。AWS Batch 提供默認任務(wù)隊列和計算環(huán)境定義,以便您快速開始使用。
特性
精細任務(wù)定義
借助 AWS Batch,可以指定資源要求 (如 vCPU 和內(nèi)存、AWS Identity and Access Management (IAM) 角色、卷掛載點、容器屬性及環(huán)境變量) 以定義如何執(zhí)行任務(wù)。AWS Batch 執(zhí)行任務(wù),就像容器化應(yīng)用程序在 Amazon ECS 上運行一樣。
簡單的任務(wù)依賴關(guān)系建模
借助 AWS Batch,可以定義不同任務(wù)之間的依賴關(guān)系。例如,您的批量任務(wù)可能分為三個不同的處理階段,且各個階段所需資源不同。有了依賴關(guān)系,您可以創(chuàng)建資源要求不同的三個任務(wù),其中下一個任務(wù)均依賴于上一個任務(wù)。
支持流行的工作流引擎
AWS Batch 可與商用開源工作流引擎和語言集成 (如 Pegasus WMS 和 Luigi),讓您能夠使用熟悉的工作流語言為批量計算管道建模。
動態(tài)計算資源預(yù)置和擴展
AWS Batch 提供托管計算環(huán)境,此類環(huán)境可根據(jù)所提交任務(wù)的卷和資源要求以動態(tài)方式預(yù)置和擴展計算資源。您可以結(jié)合如下要求配置 AWS Batch 托管計算環(huán)境:EC2 實例類型、VPC 子網(wǎng)配置、跨所有實例的最少/最多/基本 vCPU 及競價出價等。
此外,如果您需要針對 EC2 實例使用不同的配置 (如更大的 EBS 卷或另一種操作系統(tǒng)) 而不是 AWS Batch 托管計算資源所提供的配置,您還可以在 AWS Batch 非托管計算資源中預(yù)置和管理自己的計算資源。您只需預(yù)置含有 Amazon ECS 代理的 EC2 實例并運行支持的 Linux 和 Docker 版本。然后,AWS Batch 會在您預(yù)置的 EC2 實例上執(zhí)行批量任務(wù)。
基于優(yōu)先級的任務(wù)安排
借助 AWS Batch,可以設(shè)置多個具有不同優(yōu)先級的隊列。批量任務(wù)會一直存儲在隊列中,直到計算資源可用于執(zhí)行任務(wù)。AWS Batch 計劃程序會根據(jù)每個任務(wù)的資源要求評估已提交給隊列的任務(wù)的執(zhí)行時間、執(zhí)行位置及執(zhí)行方式。該計劃程序會評估每個隊列的優(yōu)先級并按***計算資源 (如內(nèi)存與優(yōu)化型 CPU) 的優(yōu)先級執(zhí)行任務(wù),只要這些任務(wù)依賴關(guān)系確定即可。
動態(tài)競價
借助 AWS Batch,可以輕松使用 Amazon EC2 競價進一步降低執(zhí)行批量任務(wù)所需費用。AWS Batch 會根據(jù)任務(wù)數(shù)量和任務(wù)資源要求及針對計算資源設(shè)置的配置參數(shù),代表您以動態(tài)方式對競價型實例進行出價。
集成的監(jiān)控和日志記錄
AWS Batch 在 AWS 管理控制臺中顯示批量任務(wù)的主要操作指標。您可以查看與計算容量相關(guān)的指標以及執(zhí)行中、待執(zhí)行和已完成的任務(wù)。您可以在 AWS 管理控制臺中查看您的任務(wù)日志 (如 STDERR 和 STDOUT),也可以將其寫入 Amazon CloudWatch Logs。
精細訪問控制
AWS Batch 使用 IAM 控制和監(jiān)控您的任務(wù)可訪問的 AWS 資源,如 Amazon DynamoDB 表。此外,您還可以通過 IAM 為組織中的不同用戶定義策略。比如,管理員可以擁有對所有 AWS Batch API 操作的完全訪問權(quán)限,開發(fā)人員可以擁有與配置計算環(huán)境及注冊任務(wù)相關(guān)的有限權(quán)限,而最終用戶只能擁有提交和刪除任務(wù)所需的權(quán)限。