

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

# Amazon ECS 受管執行個體容量提供者
<a name="managed-instances-capacity-providers-concept"></a>

Amazon ECS 受管執行個體容量提供者提供容器運算模型，可讓您存取完整範圍 AWS 的功能和 Amazon EC2 產品，同時 AWS 管理操作和安全性責任。 會 AWS 處理軟體和作業系統修補、執行個體擴展和維護，讓您享有 Fargate 的操作優勢，同時維持對所有 AWS 功能和整合的存取。

Amazon ECS 會為 Amazon ECS 受管執行個體建立啟動範本。這定義了 Amazon ECS 啟動 Amazon ECS 受管執行個體的方式，包括任務的執行個體設定檔、網路與儲存組態、容量選項，以及彈性執行個體類型選擇的執行個體需求。

## 自訂容量提供者適用時機
<a name="when-to-use-managed-instances"></a>

若工作負載需要下列項目時，建議採用自訂容量提供者：
+ 特定運算需求：需要加速運算、特定 CPU 指令集、高網路效能或大型記憶體組態的應用程式，這些組態不適用於標準 Fargate 選項。
+ GPU 工作負載：機器學習推論、即時影像轉譯、影片編碼，或其他需要存取 NVIDIA 或 AMD GPUs 的 GPU 加速應用程式。
+ 容量保留：需要可預測容量可用性的任務關鍵工作負載。
+ 進階可觀測性：需要對基礎作業系統進行特殊權限存取的安全性和監控工具，例如 eBPF 型監控解決方案或網路分析工具。
+ 成本最佳化：可以受益於多任務置放、共用基礎設施元件，或需要最大化較大執行個體類型的使用率的工作負載。

## 監控選項
<a name="monitoring-options-managed-instances"></a>

Amazon ECS 受管執行個體提供全方位的監控功能，可協助追蹤容器化工作負載的效能、運作狀態與資源使用率。您可以根據營運需求，從不同的監控層級中進行選擇。
+ **基本監控** – 針對大多數指標以 5 分鐘為間隔提供基本指標，針對狀態檢查以 1 分鐘為間隔提供基本指標。此功能為預設啟用，不會產生額外的費用。
+ **詳細監控** –以 1 分鐘為間隔提供所有指標，藉此提供增強的可見性，從而能夠更快地偵測並回應營運問題。如需詳細資訊，請參閱[Amazon ECS 受管執行個體的詳細監控](monitoring-managed-instances.md#detailed-monitoring-managed-instances)。

這兩個監控選項都與 CloudWatch 無縫整合，可提供儀表板、警示與自動化回應，有助於維持最佳的應用程式效能與可用性。

## 容量提供者考量事項
<a name="capacity-provider-considerations-managed-instances"></a>

叢集可以同時包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者以及 Fargate 容量提供者。容量提供者策略只能包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者或 Fargate 容量提供者。

## 標籤傳播
<a name="tag-propagation-managed-instances"></a>

Amazon ECS 受管執行個體的容量提供者支援標籤傳播功能。透過標籤傳播功能，容量提供者管理的所有資源 (受管執行個體、Amazon ECS 容器執行個體、啟動範本、磁碟區、彈性網路介面)，皆會以在容量提供者層級指定的相同標籤進行標記。您可以在容量提供者建立期間指定標籤，同時將 `propagateTags` 參數指定為 `CAPACITY_PROVIDER` 來啟用標籤傳播功能。

如需有關標記 Amazon ECS 受管執行個體的詳細資訊，請參閱 [Amazon ECS 受管執行個體的標籤](instance-details-tags-managed-instances.md)。

# 更新 Amazon ECS 受管執行個體容量提供者的最佳實務
<a name="capacity-provider-managed-instances-best-practices"></a>

對於最高層級的安全與復原支援，建議將容量提供者視為不可變資源。若需更新容量提供者組態，請遵循以下建議的工作流程：

1. 透過更新後的組態**建立新容量提供者**，而不是修改現有的容量提供者。

1. **更新每個服務**以採用新的容量提供者，並允許完成部署作業。

1. 在確認新組態如預期般運作後，刪除**舊的容量提供者**。

此方法具備如下優勢：
+ **受控推展** – 每次更新一個服務，並監控相關影響。
+ **輕易復原** – 發生問題時可快速將服務復原為使用先前的容量提供者。
+ **縮小影響範圍** – 新組態的問題不會立即影響所有工作負載。

**注意**  
如果您使用的是 CloudFormation，請考慮保留舊容量提供者，直到稍後部署為止，以保留復原堆疊變更的能力。

雖然您可以就地更新容量提供者，但此方法會導致更大的未受控影響範圍。就地更新會將新設定套用至往後佈建的所有新容量，但不會觸發服務部署。這意味著，您可能要等到服務需要擴展時，才會發現組態問題。

# 為 Amazon ECS 受管執行個體建立容量提供者
<a name="create-capacity-provider-managed-instances"></a>

Amazon ECS 受管執行個體會使用容量提供者來管理工作負載的運算容量。當您在不指定 的情況下建立容量提供者時`instanceRequirements`，Amazon ECS 會自動選取最具成本最佳化的一般用途執行個體類型。您可以使用 建立容量提供者`instanceRequirements`，以指定執行個體屬性，例如執行個體類型、CPU 製造商、加速器類型和其他需求。

自訂容量提供者採用屬性型執行個體類型選擇機制，可讓您將執行個體需求表達為一組屬性。這些需求會自動轉換為所有相符的 Amazon EC2 執行個體類型，由此簡化執行個體類型組態的建立與維護。若要進一步了解執行個體需求與屬性型選擇，請參閱 *Amazon EC2 User Guide* 中的 [Amazon EC2 Fleet attribute-based instance type selection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) 文件。

## 先決條件
<a name="create-capacity-provider-managed-instances-prerequisites"></a>

開始之前，請確保您已完成下列事項：
+ 決定要使用的監控類型。如需詳細資訊，請參閱[Amazon ECS 受管執行個體的詳細監控](monitoring-managed-instances.md#detailed-monitoring-managed-instances)。
+ 已有現有的叢集，或計劃建立新叢集。如需詳細資訊，請參閱[為 Amazon ECS 受管執行個體建立叢集](create-cluster-managed-instances.md)。
+ 您有 Amazon ECS 受管執行個體所需的 IAM 角色。其中包含：
  + **基礎設施角色** - 允許 Amazon ECS 代表您呼叫 AWS 服務，以管理 Amazon ECS 受管執行個體基礎設施。

    如需詳細資訊，請參閱[Amazon ECS 基礎結構 IAM 角色](infrastructure_IAM_role.md)。
  + **執行個體設定檔** – 為在受管執行個體上執行的 Amazon ECS 容器代理程式與 Docker 常駐程式提供許可。

    如需詳細資訊，請參閱[Amazon ECS 受管執行個體執行個體設定檔](managed-instances-instance-profile.md)。

了解如何選擇執行個體。如需詳細資訊，請參閱[Amazon ECS 受管執行個體的執行個體選擇最佳實務](managed-instances-instance-selection-best-practices.md)。

## 主控台程序
<a name="create-capacity-provider-managed-instances-console"></a>

**為 Amazon ECS 受管執行個體建立容量提供者 (Amazon ECS 主控台)**

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 從導覽列中選取要使用的「區域」。

1. 在導覽窗格中，選擇**叢集**。

1. 在**叢集**頁面上，選擇叢集的名稱。

1. 在叢集頁面上，選擇**基礎結構**索引標籤。

1. 在**容量提供者**區段，選擇**建立容量提供者**。

1. 在**容量提供者組態**區段，設定下列項目：
   + 在**容量提供者名稱**欄位中，輸入容量提供者的唯一名稱。
   + 在**容量提供者類型**欄位中，選擇 **Amazon ECS 受管執行個體**。

1. 在**執行個體組態**區段，設定下列項目：
   + 在**執行個體設定檔**欄位中，選擇為 Amazon ECS 受管執行個體建立的執行個體設定檔角色。
   + 在**基礎結構角色**欄位中，選擇為 Amazon ECS 受管執行個體建立的基礎結構角色。

1. 在**執行個體需求**區段下，指定執行個體的屬性。您可以設定下列項目的任意組合：
   + **vCPU 計數** – 指定 vCPU 的數量 (例如 `4` 或 `8-16` 的範圍)。
   + **記憶體 (MiB)** – 指定 MiB 中的記憶體數量 (例如 `8192` 或 `16384-32768` 的範圍)。
   + **執行個體類型** – 指定特定執行個體類型 (例如 `m5.large,m5.xlarge,c5.large`)。
   + **CPU 製造商** – 從 `intel`、`amd` 或 `amazon-web-services` 中選擇。
   + **加速器類型** – 指定加速器類型 (例如 `gpu`、`fpga` 或 `inference`)。
   + **加速器計數** – 指定加速器數量 (例如 `1` 或 `2-4` 的範圍)。

1. 在**進階組態**區段，選擇下列任一監控選項：
   + 若要讓 CloudWatch 傳送狀態檢查指標，請選擇**基本**。
   + 若要讓 CloudWatch 傳送所有指標指標，請選擇**詳細**。

1. (選用) 為協助識別容量提供者，請展開**標籤**區段，然後設定標籤。

   若要啟用從容量提供者到受管資源的標籤傳播，例如從容量提供者啟動的執行個體，請在**傳播標籤來源**欄位中選擇**容量提供者**。

   [新增標籤] 選擇**新增標籤**，並執行下列動作：
   + 在**金鑰**欄位中，輸入金鑰名稱。
   + 在**值**欄位中，輸入金鑰值。

1. 選擇**建立**。

## AWS CLI 程序
<a name="create-capacity-provider-managed-instances-cli"></a>

您可以使用 AWS CLI為 Amazon ECS 受管執行個體建立容量提供者。使用 AWS CLI的最新版本。如需有關如何升級至最新版本的詳細資訊，請參閱 [Installing or updating to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

**為 Amazon ECS 受管執行個體建立容量提供者 (AWS CLI)**

1. 執行以下命令：

   ```
   aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json
   ```

   下列 `capacity-provider-definition.json` 可用來指定基本執行個體需求與執行個體儲存體大小，以及啟用標籤傳播：

   ```
   {
       "name": "my-managed-instances-provider",
       "cluster": "my-cluster",
       "tags": [ 
           { 
               "key": "version",
               "value": "test"
           }
       ],    
       "managedInstancesProvider": {
           "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
           "instanceLaunchTemplate": {
               "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
               "instanceRequirements": {
                   "vCpuCount": {
                       "min": 4,
                       "max": 8
                   },
                   "memoryMiB": {
                       "min": 8192,
                       "max": 16384
                   }
               },
               "networkConfiguration": {
                   "subnets": [
                       "subnet-abcdef01234567",
                       "subnet-bcdefa98765432"
                   ],
                   "securityGroups": [
                       "sg-0123456789abcdef"
                   ]
               },
               "storageConfiguration": {
                   "storageSizeGiB": 100
               },
               "monitoring": "basic"
           },
           "propagateTags": "CAPACITY_PROVIDER"
       }
   }
   ```

1. 驗證容量提供者是否建立成功：

   ```
   aws ecs describe-capacity-providers \
       --capacity-providers my-managed-instances-provider
   ```

## 後續步驟
<a name="capacity-provider-managed-instances-next-steps"></a>

建立容量提供者之後，即可在建立服務或執行任務時使用：
+ 若要將容量提供者用於服務，請參閱[建立 Amazon ECS 滾動更新部署](create-service-console-v2.md)。
+ 若要將容量提供者用於獨立任務，請參閱[將應用程式作為 Amazon ECS 任務執行](standalone-task-create.md)。

# 更新 Amazon ECS 受管執行個體監控
<a name="update-capacity-provider-managed-instances"></a>

您可以修改 Amazon ECS 受管執行個體容量提供者的監控選項，在基本監控與詳細監控之間進行變更。您可以透過監控選項調整監控資料的收集層級，無需重新建立容量提供者。

如需監控選項的詳細資訊，請參閱[監控 Amazon ECS 受管執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/monitoring-managed-instances.html)。

## 主控台程序
<a name="update-capacity-provider-managed-instances-console"></a>

**更新 Amazon ECS 受管執行個體的監控 (Amazon ECS 主控台)**

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 從導覽列中選取要使用的「區域」。

1. 在導覽窗格中，選擇**叢集**。

1. 在**叢集**頁面上，選擇叢集的名稱。

1. 在叢集頁面上，選擇**基礎結構**索引標籤。

1. 在**進階組態**區段，選擇下列任一監控選項：
   + 若要讓 CloudWatch 傳送狀態檢查指標，請選擇**基本**。
   + 若要讓 CloudWatch 傳送所有指標指標，請選擇**詳細**。

1. 選擇**更新**。

若要更新與現有 Amazon ECS 受管執行個體容量提供者相關聯的標籤，請遵循如下步驟：

1. 在導覽窗格中，選擇**叢集**。

1. 在叢集頁面上，選擇**基礎結構**。

1. 在基礎結構頁面上，選擇已建立的容量提供者。

1. 在容量提供者頁面上，選擇**標籤**。

1. 在 **Tags (標籤)** 下，選擇 **Manage tags (管理標籤)**。

1. 若要新增標籤，請指定要新增之標籤的鍵值，然後選擇**儲存**。若要一次新增多個標籤，請為每個要新增的標籤選擇**新增標籤**。您最多可新增 50 個標籤。

   若要移除標籤，請選擇 **Remove** (移除)。
**注意**  
如果啟用標籤傳播，在建立容量提供者之後新增或移除的標籤，皆不適用於容量提供者先前建立的資源。

## AWS CLI 程序
<a name="update-capacity-provider-managed-instances-cli"></a>

您可以使用 AWS CLI為 Amazon ECS 受管執行個體更新容量提供者。使用 AWS CLI的最新版本。如需有關如何升級至最新版本的詳細資訊，請參閱 [Installing or updating to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

**更新 Amazon ECS 受管執行個體的監控 (AWS CLI)**

1. 若要啟用詳細監控，請使用如下命令：

   ```
   aws ecs update-capacity-provider \
       --name my-managed-instances-provider \
       --managed-instances-provider '{
           "instanceLaunchTemplateUpdate": {
               "monitoring": "DETAILED"
           }
       }'
   ```

1. 若要啟用基本監控，請使用如下命令：

   ```
   aws ecs update-capacity-provider \
       --name my-managed-instances-provider \
       --managed-instances-provider '{
           "instanceLaunchTemplateUpdate": {
               "monitoring": "BASIC"
           }
       }'
   ```

# 刪除 Amazon ECS 受管執行個體容量提供者
<a name="delete-capacity-provider-managed-instances-console-v2"></a>

如果 Amazon ECS 受管執行個體容量提供者已使用完畢，即可將其刪除。刪除群組後，Amazon ECS 受管執行個體容量提供者會轉換為 `INACTIVE` 狀態。具有 `INACTIVE` 狀態的容量提供者可能會在您的帳戶中保持可探索一段時間。不過，此行為未來可能變動，因此不建議依賴 `INACTIVE` 容量提供者得以保存。刪除 Amazon ECS 受管執行個體容量提供者之前，必須從所有服務的容量提供者策略中移除容量提供者。您可以使用 `UpdateService` API 或 Amazon ECS 主控台中的更新服務工作流程，從服務的容量提供者策略中移除容量提供者。使用**強制執行新部署**選項，可確保使用容量提供者提供之 Amazon ECS 受管執行個體容量的任何任務都會轉換，以使用剩餘容量提供者的容量。

**刪除叢集的容量提供者 (Amazon ECS 主控台)**

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在導覽窗格中，選擇**叢集**。

1. 在**叢集**頁面上，選擇叢集。

1. 在**叢集：*名稱***頁面上，選擇**基礎結構**、Amazon ECS 受管執行個體容量提供者，然後選擇**刪除**。

1. 在確認方塊中，輸入 **delete *Amazon ECS Managed Instances capacity provider name***

1. 選擇 **刪除**。