

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

# ECS 叢集層
<a name="workinglayers-ecscluster"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

[Amazon Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) (Amazon ECS) 會管理 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體叢集上的 Docker 容器，稱為容器執行個體。ECS 叢集層代表 Amazon ECS 叢集，並提供以下功能來簡化叢集管理：
+ 簡化的容器執行個體佈建及管理
+ 容器執行個體作業系統及套件更新
+ 使用者許可管理
+ 容器執行個體效能監控
+ Amazon Elastic Block Store (Amazon EBS) 磁碟區管理
+ 公有和彈性 IP 地址管理
+ 安全群組管理

ECS 叢集層具有下列限制和要求：
+ layer 僅適用於在 VPC 中執行的 Chef 11.10 或 Chef 12 Linux 堆疊，包含[預設 VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)。
+ layer 的執行個體必須執行以下任一作業系統。
  + Amazon Linux 2
  + Amazon Linux 2018.03
  + Amazon Linux 2017.09
  + Amazon Linux 2017.03
  + Amazon Linux 2016.09
  + Amazon Linux 2016.03
  + Amazon Linux 2015.09
  + Amazon Linux 2015.03
  + Ubuntu 18.04 LTS
  + Ubuntu 16.04 LTS
  + Ubuntu 14.04 LTS
  + Custom
+ layer 的執行個體上的 [OpsWorks Stacks 代理程式版本](workingstacks-creating.md#workingstacks-creating-advanced)必須為 `3425-20150727112318` 或更新版本。

**Topics**
+ [將 ECS 叢集層新增至堆疊](#workinglayers-ecscluster-add)
+ [管理 ECS 叢集](#workinglayers-ecscluster-manage)
+ [從堆疊刪除 ECS 叢集層](#workinglayers-ecscluster-delete)

## 將 ECS 叢集層新增至堆疊
<a name="workinglayers-ecscluster-add"></a>

OpsWorks Stacks 可簡化啟動和維護現有 Amazon ECS 叢集容器執行個體的程序。若要建立或啟動其他 Amazon ECS 實體，例如叢集和任務，請使用 Amazon ECS 主控台、命令列界面 (CLI) 或 API。（如需詳細資訊，請參閱 [Amazon Elastic Container Service 開發人員指南](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)。) 然後，您可以透過建立 ECS 叢集層來建立叢集與堆疊的關聯，以用於在 Stacks OpsWorks 中管理叢集。

您可以將叢集與堆疊建立關聯，如下所示：
+ 每個堆疊可以有一個 ECS 叢集層，代表單一叢集。
+ 一個叢集只能與一個堆疊建立關聯。

您必須先更新通常名為 OpsWorks 的 Stacks AWS Identity and Access Management (IAM) 服務角色，以允許 OpsWorks Stacks 代表您與 Amazon ECS 互動`aws-opsworks-service-role`，才能將 ECS 叢集層新增至堆疊。如需服務角色的詳細資訊，請參閱[允許 OpsWorks Stacks 代表您採取行動](opsworks-security-servicerole.md)。

第一次建立 ECS 叢集層時，主控台會提供**更新**按鈕，您可以選擇指示 OpsWorks Stacks 為您更新角色。 OpsWorks 堆疊接著會顯示**新增層**頁面，讓您可以將層新增至堆疊。您只需要更新服務角色一次。然後，您可以使用更新的角色，將 ECS 叢集層新增至任何堆疊。

**注意**  
若您偏好的話，您可以透過將 `ecs:*` 許可新增至現有的政策來手動更新服務角色的政策，如下所示：  

```
{
  "Statement": [
    {
      "Action": [
        "ec2:*", 
        "iam:PassRole",
        "cloudwatch:GetMetricStatistics",
        "elasticloadbalancing:*",
        "rds:*",
        "ecs:*"
      ],
      "Effect": "Allow",
      "Resource": ["*"] 
    }
  ]
}
```

將叢集與堆疊建立關聯需要兩項操作：使用堆疊註冊叢集，然後建立關聯 layer。Stacks OpsWorks 主控台結合了這些步驟； layer 建立會自動註冊指定的叢集。如果您使用 OpsWorks Stacks API、CLI 或 SDK，您必須使用個別的操作來註冊叢集並建立相關聯的 layer。若要使用主控台將 ECS 叢集層新增至堆疊，請選擇**圖層**、選擇 **\$1圖層**或**新增圖層**，然後選擇 ECS 叢集層類型。

![\[Form for adding an ECS 叢集 Layer, showing layer type, 叢集 selection, and EC2 instance profile options.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/add_layer_ecs.png)


**Add Layer (新增 Layer)** 頁面包含下列組態選項：

**ECS 叢集**  
您要向堆疊註冊的 Amazon ECS 叢集。

**EC2 Instance profile (EC2 執行個體描述檔)**  
叢集的 Amazon Elastic Compute Cloud(Amazon EC2) 執行個體描述檔。此設定檔授予在叢集容器執行個體上執行的應用程式存取其他 AWS 服務的許可，包括 Amazon ECS。當您建立第一個 ECS 叢集層時，請選擇**具有 ECS 存取權的新設定檔**以指示 OpsWorks Stacks 建立必要的設定檔，其名稱為 `aws-opsworks-ec2-role-with-ecs`。然後，您可以將該設定檔用於所有後續的 ECS 叢集層。如需執行個體描述檔的詳細資訊，請參閱[指定在 EC2 執行個體上執行之應用程式的許可](opsworks-security-appsrole.md)。

您可以藉由[編輯 layer 的組態](workinglayers-basics-edit.md)指定其他設定，包含：
+ [將 Elastic Load Balancing 負載平衡器](workinglayers-basics-edit.md#workinglayers-basics-edit-network)連接至 layer。

  此方法可能適用於某些使用案例，但 Amazon ECS 提供更複雜的選項。如需詳細資訊，請參閱[服務負載平衡](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)。
+ 指定是否要自動將[公有 IP 地址或彈性 IP 地址](workinglayers-basics-edit.md#workinglayers-basics-edit-network)指派給容器執行個體。

  若您停用兩種地址類型的自動指派，執行個體會無法上線，除非子網路已有適當設定的 NAT。如需詳細資訊，請參閱[在 VPC 中執行堆疊](workingstacks-vpc.md)。

## 管理 ECS 叢集
<a name="workinglayers-ecscluster-manage"></a>

建立 ECS 叢集層之後，您可以使用 OpsWorks Stacks 來管理叢集，如下所示：

**佈建及管理容器執行個體**  
一開始，ECS 叢集層不包含任何容器執行個體，即使原始叢集已包含。一個選項是透過使用下列項目的適當組合，管理 layer 的執行個體：  
+ 手動[新增全年無休執行個體](workinginstances-add.md)至 layer 及在不需要時[刪除執行個體](workinginstances-delete.md)。
+ 透過將[時間式執行個體](workinginstances-autoscaling-timebased.md)新增至 layer，藉以在排程上新增或刪除執行個體。
+ 將負載型執行個體新增至 layer，以根據 OpsWorks Stacks 主機指標或 CloudWatch 警示新增或刪除執行個體。 [使用自動負載型擴展](workinginstances-autoscaling-loadbased.md)
如果堆疊的預設作業系統不支援 Amazon ECS，您必須在建立容器執行個體時明確指定支援的作業系統：Amazon Linux 2、Amazon Linux 2018.03、Amazon Linux 2017.09、Amazon Linux 2017.03、Amazon Linux 2016.09、Amazon Linux 2016.03、Amazon Linux 2015.09、Amazon Linux 2015.03、Ubuntu 18.04 LTS、Ubuntu 16.04 LTS、Ubuntu 14.04 LTS 或 Custom—。請勿使用 ECS Optimized AMI 在 ECS layer 中建立執行個體，因為此 AMI 已包含 ECS 代理程式。 OpsWorks Stacks 也會嘗試在執行個體設定程序期間安裝 ECS 代理程式，且衝突可能會導致設定失敗。
如需詳細資訊，請參閱 [最佳化應用程式伺服器的數目](best-practices-autoscale.md). OpsWorks Stacks 將 **AWS-OpsWorks-ECS-Cluster** 安全群組指派給每個執行個體。每個新執行個體完成開機後， OpsWorks Stacks 會安裝 Docker 和 Amazon ECS 代理程式，然後向叢集註冊執行個體，將其轉換為容器執行個體。  
如果您偏好使用現有的容器執行個體，則可以[向堆疊註冊它們](registered-instances-register.md)，並將[它們指派給 ECS 叢集層](registered-instances-assign.md)。請注意，執行個體必須執行支援的作業系統，Amazon Linux 2015.03 或更新版本、Ubuntu 14.04 LTS 或更新版本。  
容器執行個體不能同時屬於 ECS 叢集層和另一個內建層。不過，容器執行個體*可以*屬於 ECS 叢集層和一或多個[自訂層](workinglayers-custom.md)。

**執行作業系統及套件更新**  
新執行個體完成開機後， OpsWorks Stacks 會安裝最新的更新。然後，您可以使用 OpsWorks Stacks 將容器執行個體保持在最新狀態。如需詳細資訊，請參閱[管理安全性更新](workingsecurity-updates.md)。

**管理使用者許可**  
OpsWorks Stacks 提供簡單的方法來管理容器執行個體的許可，包括管理使用者的 SSH 金鑰。如需詳細資訊，請參閱[管理使用者許可](opsworks-security-users.md)及[管理 SSH 存取](security-ssh-access.md)。

**監控效能指標**  
OpsWorks Stacks 提供各種方法來監控堆疊、 layer 或個別執行個體的效能指標。如需詳細資訊，請參閱[監控](monitoring.md)。

您可以透過 Amazon ECS 處理其他管理任務，例如建立任務或服務。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)。

**注意**  
若要直接前往 Amazon ECS 主控台上的叢集頁面，請選擇**執行個體**，然後選擇靠近 **ECS 叢集**層區段右上角的 ECS 叢集。

## 從堆疊刪除 ECS 叢集層
<a name="workinglayers-ecscluster-delete"></a>

當您不再需要叢集時，請刪除 ECS 叢集層並取消註冊相關聯的叢集。從堆疊移除叢集需要兩項操作：取消註冊叢集，然後刪除關聯 layer。Stacks OpsWorks 主控台結合了這些步驟； layer 刪除會自動取消註冊指定的叢集。如果您使用 OpsWorks Stacks API、CLI 或 SDK，則必須使用單獨的操作來取消註冊叢集並刪除相關聯的 layer。

**使用主控台刪除 ECS 叢集層**

1. 如果您想要控制任務關閉的方式，請使用 Amazon ECS 主控台、API 或 CLI 來縮減規模並刪除叢集的服務。如需詳細資訊，請參閱[清除 Amazon ECS 資源](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CleaningUp.html)。

1. [停止 layer 的執行個體](workinginstances-starting.md#workinginstances-starting-stop)，然後[刪除執行個體](workinginstances-delete.md)。當您停止容器執行個體時， OpsWorks Stacks 會自動停止任何執行中的任務、從叢集取消註冊執行個體，以及終止執行個體。
**注意**  
若您有已使用堆疊註冊的現有容器執行個體，您可以[從 layer 取消指派執行個體](registered-instances-unassign.md)，然後[取消註冊他們](registered-instances-deregister.md)，使執行個體回歸 ECS 的控制。

1. [刪除 layer](workinglayers-basics-delete.md). OpsWorks Stacks 會取消註冊相關聯的叢集，但不會將其刪除。叢集會保留在 Amazon ECS 中。