本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
計算資源 AMI
根據預設, AWS Batch 受管運算環境會針對運算資源使用最新、核准的 Amazon ECS 最佳化 AMI 版本。不過,您可能想要建立自己的 AMI,以便用於受管理和未受管理的運算環境。如果您需要以下任何一項,我們建議您創建自己的 AMI:
-
增加 AMI 根或資料磁碟區的儲存大小
-
新增支援 Amazon EC2 執行個體類型的執行個體儲存磁碟
-
自訂 Amazon ECS 容器代理程式
-
自訂泊塢視窗
-
設定 GPU 工作負載 AMI 以允許容器存取受支援的 Amazon EC2 執行個體類型上的 GPU 硬體
注意
建立運算環境之後, AWS Batch 不會升級運算環境中的 AMI。 AWS Batch 當有更新版本的 Amazon ECS 最佳化 AMI 可用時,也不會更新運算環境中的 AMI。您必須負責客體作業系統的管理。這包括任何更新和安全性修補程式。您也必須負責安裝在運算資源上的任何其他應用程式軟體或公用程式。要為您的 AWS Batch 工作使用新的 AMI,請執行以下操作:
-
新建內有新 AMI 的運算環境。
-
將運算環境新增至現有的任務佇列。
-
將較早的運算環境從任務佇列移除。
-
刪除較早的運算環境。
2022 年 4 月,增 AWS Batch 加了對更新計算環境的增強支援。如需詳細資訊,請參閱 更新運算環境。若要使用運算環境的增強型更新功能來更新 AMI,請遵循下列規則:
-
請勿設定服務角色 (
serviceRole
) 參數,或將其設定為服AWSServiceRoleForBatch務連結角色。 -
將配置策略 (
allocationStrategy
) 參數設定為BEST_FIT_PROGRESSIVE
SPOT_CAPACITY_OPTIMIZED
、或SPOT_PRICE_CAPACITY_OPTIMIZED
。 -
將更新至最新映像版本 (
updateToLatestImageVersion
) 參數設定為true
。 -
請勿在
imageId
、imageIdOverride
(中ec2Configuration
) 或啟動範本 (launchTemplate
) 中指定 AMI ID。如果您未指定 AMI ID,請 AWS Batch 選取啟動基礎設施更新時 AWS Batch 支援的最新 Amazon ECS 最佳化 AMI。或者,您可以在imageId
或imageIdOverride
參數中指定 AMI ID。或者,您可以指定由LaunchTemplate
屬性識別的啟動範本。變更任何這些屬性都會啟動基礎結構更新。如果在啟動範本中指定 AMI ID,則無法透過在imageId
或imageIdOverride
參數中指定 AMI ID 來取代 AMI 識別碼。AMI ID 只能透過指定不同的啟動範本來取代。如果啟動範本版本設定為$Default
或$Latest
,則可以透過設定啟動範本的新預設版本 (if$Default
) 或將新版本新增至啟動範本 (如果$Latest
) 來取代 AMI ID。
如果遵循這些規則,則啟動基礎結構更新的任何更新都會導致 AMI ID 重新選取。如果啟動範本 (launchTemplate
) 中的version
設定設為$Latest
或$Default
,則會在基礎結構更新時評估啟動範本的最新或預設版本,即使launchTemplate
未更新也是如此。
運算資源 AMI 規格
基本 AWS Batch 運算資源 AMI 規格包含下列項目:
必要
-
在 HVM 虛擬化類型 AMI 上執行至少 3.10 版 Linux 核心的現代 Linux 發行版本。不支援視窗容器。
重要
多節點 parallel 任務只能在已安裝
ecs-init
套件的 Amazon Linux 執行個體上啟動的運算資源上執行。建議您在建立運算環境時使用預設的 Amazon ECS 最佳化 AMI。您可以透過不指定自訂 AMI 來執行此操作。如需詳細資訊,請參閱 多節點 parallel 工作。 -
Amazon ECS 容器代理程式。建議您使用最新的 版本。如需詳細資訊,請參閱 Amazon 彈性容器服務開發人員指南中的安裝 Amazon ECS 容器代理程式。
-
啟動 Amazon ECS 容器代理程式時,必須使用
ECS_AVAILABLE_LOGGING_DRIVERS
環境變數將日誌驅動程式指定為可用的日誌驅動程式。awslogs
如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 容器代理程式組態。 -
運行至少版本 1.9 的 Docker 守護進程以及任何 Docker 運行時依賴項。如需詳細資訊,請參閱 Docker 文件中的檢查執行時間相依性
。 注意
我們建議使用隨附的 Docker 版本,並使用您正在使用的對應 Amazon ECS 代理程式版本進行測試。Amazon ECS 為 Amazon ECS 優化 AMI 的 Linux 變體提供了一個更改日誌。 GitHub如需詳細資訊,請參閱變更記錄
。
建議
-
用於執行和監控 Amazon ECS 代理程式的初始化和保姆程序。Amazon ECS 最佳化 AMI 使用
ecs-init
新啟動程序,而其他作業系統可能會使用。systemd
如需詳細資訊和範例,請參閱 Amazon 彈性容器服務開發人員指南中的範例容器執行個體使用者資料組態指令碼。如需詳細資訊ecs-init
,請參閱中的ecs-init
專案GitHub。受管運算環境至少需要 Amazon ECS 代理程式在開機時啟動。如果 Amazon ECS 代理程式未在您的運算資源上執行,則無法接受來自 AWS Batch的任務。
Amazon ECS 最佳化 AMI 已預先設定這些需求和建議。我們建議您使用 Amazon ECS 最佳化 AMI 或 Amazon Linux AMI 與為您的運算資源安裝的ecs-init
套件搭配使用。如果您的應用程式需要特定作業系統或 Docker 版本尚未在這些 AMI 中提供,請選擇其他 AMI。如需詳細資訊,請參閱 Amazon 彈性容器服務開發人員指南中的 Amazon ECS 優化 AMI。