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