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