

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 的服務環境 AWS Batch
<a name="service-environments"></a>

服務環境 AWS Batch 可讓 與 SageMaker AI 整合。服務環境包含 AWS Batch 提交和管理 SageMaker Training 任務所需的 SageMaker AI AWS Batch特定組態參數，同時提供佇列、排程和優先順序管理功能。

透過服務環境，資料科學家和 ML 工程師可以將具有優先順序的 SageMaker 訓練任務提交至服務任務佇列。此整合不需要手動協調 ML 工作負載、防止意外超支，並改善組織機器學習工作流程的資源使用率。

**Topics**
+ [

# 什麼是 中的服務環境 AWS Batch
](what-are-service-environments.md)
+ [

# 中的服務環境狀態和生命週期 AWS Batch
](service-environment-states.md)
+ [

# 在 中建立服務環境 AWS Batch
](create-service-environments.md)
+ [

# 在 中更新服務環境 AWS Batch
](updating-service-environments.md)
+ [

# 在 中刪除服務環境 AWS Batch
](deleting-service-environments.md)

# 什麼是 中的服務環境 AWS Batch
<a name="what-are-service-environments"></a>

服務環境是一種 AWS Batch 資源，其中包含 AWS Batch 與 SageMaker AI 整合所需的組態參數。服務環境 AWS Batch 可讓 AWS Batch提交和管理 SageMaker Training 任務，同時提供佇列、排程和優先順序管理功能。

服務環境可解決資料科學團隊在管理機器學習工作負載時面臨的常見挑戰。組織通常會限制訓練模型可用的執行個體數量，以防止意外超支、符合預算限制、節省預留執行個體的成本，或針對工作負載使用特定的執行個體類型。不過，資料科學家可能想要同時執行比其配置執行個體更多工作負載，需要手動協調來決定何時執行哪些工作負載。

此協調挑戰會影響各種規模的組織，從只有少數資料科學家的團隊到大規模操作。隨著組織的成長，複雜性會增加，需要更多時間來管理工作負載協調，並且通常需要基礎設施管理員的參與。這些手動工作會浪費時間並降低執行個體效率，為客戶帶來實際成本。

透過服務環境，資料科學家和 ML 工程師可以將優先順序為可設定佇列的 SageMaker 訓練任務提交，確保工作負載在有資源可用時自動執行，無需介入。此整合利用 AWS Batch廣泛的佇列和排程功能，讓客戶自訂其佇列和排程政策，以符合其組織的目標。

## 服務環境如何與其他 AWS Batch 元件搭配使用
<a name="service-environment-integration"></a>

服務環境與其他 AWS Batch 元件整合，以啟用 SageMaker Training 任務佇列：
+ **任務佇列** - 服務環境與任務佇列相關聯，讓佇列能夠處理 SageMaker Training 任務的服務任務
+ **服務任務** - 當您將服務任務提交至與服務環境相關聯的佇列時， AWS Batch 會使用環境的組態來提交對應的 SageMaker Training 任務
+ **排程政策** - 服務環境使用 AWS Batch 排程政策來排定和管理 SageMaker Training 任務的執行順序

此整合可讓您利用 AWS Batch成熟的佇列和排程功能，同時維護 SageMaker Training 任務的完整功能和靈活性。

## 服務環境的最佳實務
<a name="service-environment-best-practices"></a>

服務環境提供大規模管理 SageMaker 訓練任務的功能。遵循這些最佳實務可協助您最佳化成本、效能和營運效率，同時避免可能影響機器學習工作流程的常見組態問題。

規劃服務環境容量時，請考慮適用於 SageMaker Training 任務佇列的特定配額和限制。每個服務環境都有以執行個體數量表示的最大容量限制，可直接控制可同時執行的 SageMaker 訓練任務數量。了解這些限制有助於防止資源爭用，並確保可預測的任務執行時間。

最佳服務環境效能取決於了解 SageMaker Training 任務排程的獨特特性。與傳統容器化任務不同，服務任務會轉換到 `SCHEDULED` 狀態，而 SageMaker AI 會取得並佈建必要的訓練執行個體。這表示任務開始時間可能會因執行個體可用性和區域容量而有很大差異。

**重要**  
服務環境具有特定的配額，可能會影響您擴展 SageMaker Training 工作負載的能力。每個帳戶最多可以建立 50 個服務環境，每個任務佇列僅支援一個相關聯的服務環境。此外，個別任務的服務請求承載限制為 10 KiB，而 `SubmitServiceJob` API 限制為每個帳戶每秒 5 次交易。在容量規劃期間了解這些限制可防止非預期的擴展限制。

有效監控服務環境需要同時注意 AWS Batch 和 SageMaker AI 服務指標。[任務狀態轉換](service-job-status.md)可提供有關系統效能的寶貴洞見，特別是在`SCHEDULED`狀態中花費的時間，這表示容量可用性模式。服務環境會維護自己的生命週期狀態，類似於運算環境，並透過 `CREATING`、`INVALID`、 `VALID`和 狀態進行轉換，這些`DELETING`狀態應受到營運運作狀態的監控。具有成熟監控實務的組織通常會追蹤佇列深度、任務完成率和執行個體使用率模式，以隨著時間最佳化其服務環境組態。

# 中的服務環境狀態和生命週期 AWS Batch
<a name="service-environment-states"></a>

服務環境會維持生命週期狀態，指出其目前的操作狀態和處理 SageMaker Training 任務的準備程度。了解這些狀態可協助您監控服務環境運作狀態、疑難排解組態問題，並確保可靠的任務處理。狀態管理系統遵循來自運算環境的已建立模式，同時適應 SageMaker Training 任務整合的獨特需求。

服務環境狀態是由 AWS Batch 根據組態驗證、資源可用性和操作運作狀態檢查自動管理。與管理實體基礎設施的運算環境不同，服務環境著重於組態驗證，以及與 SageMaker AI 服務的整合準備程度。狀態轉換可讓您了解您的服務環境是否可以成功提交和管理 SageMaker Training 任務。

# 服務環境狀態定義
<a name="service-environment-state-definitions"></a>

服務環境可以處於四種可能狀態之一，指出其目前操作狀態和處理 SageMaker Training 任務的準備程度。每個狀態代表服務環境生命週期中的特定階段，從初始建立到操作準備，再到最終刪除。下表說明每個狀態及其意義：


| State | Description | 
| --- | --- | 
| CREATING |  建立服務環境時的初始狀態。在此狀態下， 會 AWS Batch 驗證組態參數，並建立與 SageMaker AI 服務的整合。服務環境無法處理任務，與其相關聯的任何任務佇列都不會接受服務任務提交。對於正確設定的服務環境，建立程序通常會在幾秒鐘內完成。  | 
| VALID |  表示服務環境已通過所有組態驗證檢查，並準備好處理 SageMaker Training 任務的操作狀態。此狀態表示服務環境組態正確、具備所有必要許可， AWS Batch 並可代表您成功將任務提交至 SageMaker AI。服務環境會在此狀態下花費大部分的操作生命週期。  | 
| INVALID |  狀態表示服務環境遇到組態或許可問題，導致無法處理 SageMaker Training 任務。在解決基礎問題之前，與無效服務環境相關聯的任務佇列無法處理新的服務任務提交。  | 
| DELETING |  當您請求刪除服務環境時發生的狀態。在此狀態期間， AWS Batch 會確保沒有作用中的 SageMaker 訓練任務與環境相關聯，並執行必要的清除操作。處於此狀態的服務環境無法處理新的任務提交，刪除程序會在所有相關資源正確清除後完成。  | 

## 服務環境狀態轉換
<a name="service-environment-state-transitions"></a>

服務環境狀態轉換會根據組態變更、驗證結果和操作運作狀態監控自動進行。 AWS Batch 服務會持續監控服務環境的運作狀態，並相應地更新狀態。了解這些轉換可協助您預測組態變更何時生效，以及如何解決導致無效狀態的問題。

成功建立和驗證後，服務環境會從 轉換為 `CREATING` `VALID`。此轉換會確認所有組態參數皆正確、已正確設定必要的 IAM 許可，而且服務環境可以成功與 SageMaker AI 服務整合。一旦進入 `VALID` 狀態，相關聯的任務佇列就可以開始處理服務任務提交。

`INVALID` 當組態驗證失敗或相依性無法使用時，服務環境會從 `VALID` 轉換為 。這可能是由於 IAM 角色修改、違反配額的容量限制變更，或影響服務環境運作能力的外部資源修改。狀態原因欄位提供有關導致無效狀態之原因的特定詳細資訊。

解決基礎問題`VALID``INVALID`後，服務環境可以從 轉換回 。這可能包括更新 IAM 許可、更正容量組態，或還原對所需 AWS 資源的存取。轉換通常會在 AWS Batch 偵測到已解決組態問題時自動發生。

# 在 中建立服務環境 AWS Batch
<a name="create-service-environments"></a>

您需要建立服務環境 AWS Batch，才能在 中執行 SageMaker Training 任務。您可以建立服務環境，其中包含 與 SageMaker AI 服務 AWS Batch 整合所需的組態參數，並代表您提交 SageMaker Training 任務。

## 先決條件
<a name="create-service-environments-prerequisites"></a>

在建立服務環境之前，請確定您有：
+ **IAM 許可** – 建立和管理服務環境的許可。如需詳細資訊，請參閱[AWS Batch IAM 政策、角色和許可](IAM_policies.md)。

------
#### [ Create a service environment (AWS Console) ]

使用 AWS Batch 主控台透過 Web 界面建立服務環境。

**建立服務環境**

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 在導覽窗格中，選擇 **Environments (環境)**。

1. 選擇**建立環境**，然後選取**服務環境**。

1. 針對**服務環境組態**，選擇 SageMaker AI。

1. 在**名稱**中，輸入服務環境的唯一名稱。有效字元為 a-z、A-Z、0-9、連字號 (-) 和底線 (\$1)。

1. 針對**執行個體數量上限**，輸入並行訓練執行個體數量上限

1. （選用） 透過選擇新增標籤並輸入鍵/值對來**新增標籤**。

1. 選擇**下一步**。

1. 檢閱新服務環境的詳細資訊，然後選擇**建立服務環境**。

------
#### [ Create a service environment (AWS CLI) ]

使用 `create-service-environment`命令透過 CLI AWS 建立服務環境。

**建立服務環境**

1. 使用基本必要參數建立服務環境：

   ```
   aws batch create-service-environment \
       --service-environment-name my-sagemaker-service-env \
       --service-environment-type SAGEMAKER_TRAINING \
       --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=10
   ```

1. （選用） 使用標籤建立服務環境：

   ```
   aws batch create-service-environment \
       --service-environment-name my-sagemaker-service-env \
       --service-environment-type SAGEMAKER_TRAINING \
       --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=10 \
       --tags team=data-science,project=ml-training
   ```

1. 確認已成功建立服務環境：

   ```
   aws batch describe-service-environments \
       --service-environment my-sagemaker-service-env
   ```

服務環境會出現在具有 `CREATING` 狀態的環境清單中。當建立成功完成時，狀態會變更為 ，`VALID`且服務環境已準備好新增服務任務佇列，以便服務環境可以開始處理任務。

------

# 在 中更新服務環境 AWS Batch
<a name="updating-service-environments"></a>

您可以更新服務環境來修改其容量限制、變更其操作狀態，或更新資源標籤。服務環境更新可讓您在 SageMaker Training 工作負載需求變更或修改操作設定時調整容量，而無需重新建立環境。在更新服務環境之前，請了解哪些參數可以修改，以及變更對執行中任務的影響。

您可以變更服務環境的容量限制、狀態或標籤。

------
#### [ Update a service environment (AWS Console) ]

使用 AWS Batch 主控台透過 Web 界面更新服務環境。

**更新服務環境**

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 在導覽窗格中，選擇 **Environments (環境)**。

1. 選擇**服務環境**索引標籤。

1. 選擇要更新的服務環境。

1. 選擇**動作**，然後選擇：
   + **狀態** - 選擇**啟用或停用******以變更狀態。
   + **容量限制** - 修改**執行個體數量上限**

1. 選擇**儲存變更**以套用變更。

服務環境會立即更新。檢查環境詳細資訊，以確認已成功套用變更。如果您停用服務環境，相關聯的任務佇列將停止處理新的服務任務提交，直到您重新啟用為止。

------
#### [ Update a service environment (AWS CLI) ]

使用 `update-service-environment`命令透過 CLI AWS 修改服務環境。

**更新服務環境容量限制**

1. 更新服務環境的容量限制：

   ```
   aws batch update-service-environment \
       --service-environment my-sagemaker-service-env \
       --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=20
   ```

1. 確認已成功套用更新：

   ```
   aws batch describe-service-environments \
       --service-environments my-sagemaker-service-env
   ```

**更新服務環境狀態**

1. 停用服務環境以停止處理新任務：

   ```
   aws batch update-service-environment \
       --service-environment my-sagemaker-service-env \
       --state DISABLED
   ```

1. 重新啟用服務環境以繼續處理：

   ```
   aws batch update-service-environment \
       --service-environment my-sagemaker-service-env \
       --state ENABLED
   ```

服務環境更新會立即生效。監控服務環境狀態，以確保更新在提交新任務之前成功完成。

------

# 在 中刪除服務環境 AWS Batch
<a name="deleting-service-environments"></a>

您可以在 SageMaker Training 任務不再需要服務環境時將其刪除。刪除服務環境會移除組態，並防止進一步提交任務。刪除服務環境之前，請確定沒有任何作用中的 SageMaker Training 任務相依於它，而且沒有任何任務佇列與服務環境相關聯。

**重要**  
服務環境刪除是不可復原的。一旦刪除，您就無法復原服務環境或其組態。如果您未來需要類似的功能，則必須使用所需的設定建立新的服務環境。如果您稍後可能需要重新啟用服務環境，請考慮停用服務環境，而不是刪除。

**注意**  
刪除帳戶中的所有服務環境不會自動移除為 AWS Batch 和 SageMaker AI 整合建立的服務連結角色。服務連結角色仍可用於未來的服務環境建立。如果您想要移除服務連結角色，則必須在確保您的帳戶中不存在任何服務環境之後，使用 IAM 分別將其刪除。

## 刪除先決條件
<a name="service-environment-deletion-prerequisites"></a>

您必須先取消任何服務任務佇列的關聯，然後停用服務環境，才能刪除服務環境。

**刪除服務環境之前：**
+ **檢查作用中任務** - 確保目前沒有 SageMaker 訓練任務透過服務環境執行。
+ **檢閱任務佇列** - 識別與服務環境相關聯的任務佇列，並將任務佇列與不同的服務環境建立關聯，或停用和刪除任務佇列。

**任務佇列管理：**與已刪除的服務環境相關聯的任務佇列仍然存在，但無法處理服務任務。在刪除原始服務環境之前，您應該刪除未使用的任務佇列，或將其與不同的服務環境建立關聯。

------
#### [ Delete a service environment (AWS Console) ]

使用 AWS Batch 主控台透過 Web 界面刪除服務環境。

**刪除服務環境**

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 在導覽窗格中，選擇 **Environments (環境)**。

1. 選擇**服務環境**索引標籤，然後選擇服務環境。

1. 如果啟用服務環境，請選擇**動作**，然後選擇**停用**。

1. 一旦服務環境停用，請選擇**動作**，然後選擇**刪除**。

1. 在確認對話方塊中，選擇**確認**。

發生刪除時，服務環境會顯示 `DELETING` 狀態。刪除完成後，服務環境會從環境清單中消失。

------
#### [ Delete a service environment (AWS CLI) ]

使用 `delete-service-environment`命令，透過 CLI AWS 移除服務環境。

**刪除服務環境**

1. 檢查與服務環境相關聯的任務佇列：

   ```
   aws batch describe-job-queues
   ```

   如果有任何與服務環境相關聯的任務佇列，您可以[取消任務佇列與服務環境的關聯](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateJobQueue.html)，並將其與不同的服務環境建立關聯，或刪除任務佇列。

1. 停用服務環境：

   ```
   aws batch update-service-environment \
       --service-environment my-sagemaker-service-env \
       --state DISABLED
   ```

1. 刪除服務環境：

   ```
   aws batch delete-service-environment \
       --service-environment my-sagemaker-service-env
   ```

1. 監控刪除程序：

   ```
   aws batch describe-service-environments \
       --service-environment my-sagemaker-service-env
   ```

服務環境會在刪除程序期間轉換為 `DELETING` 狀態。一旦刪除完成，服務環境就不會再列在描述操作中。相關聯的任務佇列會保留，但在與不同的服務環境相關聯之前，無法處理服務任務。

------