本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ECS 叢集層
重要
AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post
Amazon Elastic Container Service (Amazon ECS) 會在稱為容器執行個體的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體叢集上管理 Docker 容器。ECS 叢集層代表 Amazon ECS叢集,並提供以下功能來簡化叢集管理:
-
簡化的容器執行個體佈建及管理
-
容器執行個體作業系統及套件更新
-
使用者許可管理
-
容器執行個體效能監控
-
Amazon Elastic Block Store (Amazon EBS) 磁碟區管理
-
公有和彈性 IP 地址管理
-
安全群組管理
ECS 叢集層有下列限制和要求:
-
此 layer 僅適用於在 中執行的 Chef 11.10 或 Chef 12 Linux 堆疊VPC,包括預設 VPC。
-
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
-
自訂
-
-
layer 的執行個體上的 AWS OpsWorks Stacks 代理程式版本必須為
3425-20150727112318
或更新版本。
將ECS叢集層新增至堆疊
AWS OpsWorks Stacks 可簡化為現有 Amazon ECS叢集啟動和維護容器執行個體的程序。若要建立或啟動其他 Amazon ECS實體,例如叢集和任務,請使用 Amazon ECS主控台、命令列界面 (CLI) 或 API。(如需詳細資訊,請參閱 Amazon Elastic Container Service 開發人員指南。) 然後,您可以透過建立ECS叢集層來建立叢集與堆疊的關聯,您可以使用叢集層在 Stacks AWS OpsWorks 中管理叢集。
您可以將叢集與堆疊建立關聯,如下所示:
-
每個堆疊可以有一個ECS叢集層,代表單一叢集。
-
一個叢集只能與一個堆疊建立關聯。
您必須先更新通常名為 AWS OpsWorks 的 Stacks AWS Identity and Access Management (IAM) 服務角色,以允許 AWS OpsWorks Stacks ECS 代表您與 Amazon 互動aws-opsworks-service-role
,才能將ECS叢集層新增至堆疊。如需服務角色的詳細資訊,請參閱允許 AWS OpsWorks 堆疊代表您採取行動。
第一次建立ECS叢集層時,主控台會提供更新按鈕,您可以選擇引導 Stacks AWS OpsWorks 為您更新角色。 AWS OpsWorks Stacks 接著會顯示新增層頁面,讓您可以將層新增至堆疊。您只需要更新服務角色一次。然後,您可以使用更新的角色,將ECS叢集層新增至任何堆疊。
注意
若您偏好的話,您可以透過將 ecs:*
許可新增至現有的政策來手動更新服務角色的政策,如下所示:
{ "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*", "ecs:*" ], "Effect": "Allow", "Resource": ["*"] } ] }
將叢集與堆疊建立關聯需要兩項操作:使用堆疊註冊叢集,然後建立關聯 layer。Stacks AWS OpsWorks 主控台結合了這些步驟; layer 建立會自動註冊指定的叢集。如果您使用 AWS OpsWorks Stacks API、 CLI或 SDK,則必須使用個別的操作來註冊叢集並建立相關聯的 layer。若要使用 主控台將ECS叢集層新增至您的堆疊,請選擇層、選擇 +層或新增層,然後選擇ECS叢集層類型。
Add Layer (新增 Layer) 頁面包含下列組態選項:
- ECS 叢集
-
您要向堆疊註冊的 Amazon ECS叢集。
- EC2 執行個體設定檔
-
叢集的 Amazon Elastic Compute Cloud(AmazonEC2) 執行個體設定檔。此設定檔授予許可,讓在叢集的容器執行個體上執行的應用程式存取其他服務AWS,包括 Amazon ECS。當您建立第一個ECS叢集層時,請選擇具有直接 Stacks ECS存取權的新設定檔,以建立名為 的必要設定檔
aws-opsworks-ec2-role-with-ecs
。 AWS OpsWorks 然後,您可以將該設定檔用於所有後續ECS的叢集層。如需執行個體描述檔的詳細資訊,請參閱指定在執行EC2個體上執行的應用程式。
您可以藉由編輯 layer 的組態指定其他設定,包含:
-
將 Elastic Load Balancing 負載平衡器連接至 layer。
此方法可能適用於某些使用案例,但 Amazon ECS提供更複雜的選項。如需詳細資訊,請參閱服務負載平衡。
-
指定是否要自動將公有 IP 地址或彈性 IP 地址指派給容器執行個體。
如果您停用兩種地址類型的自動指派,則除非子網路已正確設定 ,否則執行個體將無法上線NAT。如需詳細資訊,請參閱在 中執行堆疊 VPC。
管理ECS叢集
建立ECS叢集層之後,您可以使用 AWS OpsWorks Stacks 來管理叢集,如下所示:
- 佈建及管理容器執行個體
-
最初,ECS叢集層不包含任何容器執行個體,即使原始叢集已包含。一個選項是透過使用下列項目的適當組合,管理 layer 的執行個體:
-
手動新增全年無休執行個體至 layer 及在不需要時刪除執行個體。
-
透過將時間式執行個體新增至 layer,藉以在排程上新增或刪除執行個體。
-
將負載型執行個體新增至 layer,根據 AWS OpsWorks Stacks 主機指標或 CloudWatch 警示新增或刪除執行個體。 使用基於負載的自動調整
注意
如果堆疊的預設作業系統ECS不支援 Amazon,您必須在建立容器執行個體時明確指定支援的作業系統: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.04LTS、Ubuntu 16.04LTS、Ubuntu 14.04 LTS或 Custom。請勿使用 ECS Optimized 在 ECS layer 中AMI建立執行個體,因為這AMI已包含ECS代理程式。 AWS OpsWorks Stacks 也會嘗試在執行個體設定程序中安裝ECS代理程式,而衝突可能會導致設定失敗。
如需詳細資訊,請參閱 最佳化應用程式伺服器的數目. AWS OpsWorks Stacks 會將 AWS-OpsWorks-ECS-Cluster 安全群組指派給每個執行個體。每個新執行個體完成開機後, AWS OpsWorks Stacks 會透過安裝 Docker 和 Amazon ECS代理程式,然後將執行個體註冊到叢集,將其轉換為容器執行個體。
如果您偏好使用現有的容器執行個體,則可以向堆疊註冊它們,並將它們指派給ECS叢集層。請注意,執行個體必須執行支援的作業系統、Amazon Linux 2015.03 或更新版本,或 Ubuntu 14.04 LTS或更新版本。
注意
容器執行個體不能同時屬於ECS叢集層和另一個內建層。不過,容器執行個體可以屬於ECS叢集層和一或多個自訂層。
-
- 執行作業系統及套件更新
-
新執行個體完成開機後, AWS OpsWorks Stacks 會安裝最新的更新。然後,您可以使用 AWS OpsWorks Stacks 讓容器執行個體保持最新狀態。如需詳細資訊,請參閱管理安全性更新。
- 管理使用者許可
-
AWS OpsWorks Stacks 提供簡單的方法來管理容器執行個體的許可,包括管理使用者的SSH金鑰。如需詳細資訊,請參閱 管理使用者許可 和 管理 SSH 存取。
- 監控效能指標
-
AWS OpsWorks Stacks 提供多種方法來監控堆疊、 layer 或個別執行個體的效能指標。如需詳細資訊,請參閱監控。
您可以透過 Amazon 處理其他管理任務,例如建立任務或服務ECS。如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》。
注意
若要直接前往 Amazon ECS主控台上的叢集頁面,請選擇執行個體,然後選擇ECS叢集,該叢集位於ECS叢集層區段右上角附近。
從堆疊刪除ECS叢集層
當您不再需要叢集時,請刪除ECS叢集層並取消註冊相關聯的叢集。從堆疊移除叢集需要兩項操作:取消註冊叢集,然後刪除關聯 layer。Stacks AWS OpsWorks 主控台結合了這些步驟; layer 刪除會自動取消註冊指定的叢集。如果您使用 AWS OpsWorks Stacks API、 CLI或 SDK,則必須使用個別的操作來取消註冊叢集並刪除相關聯的 layer。
使用主控台刪除ECS叢集層
-
如果您想要控制任務關閉的方式,請使用 Amazon ECS主控台、 API或 CLI來縮減規模並刪除叢集的服務。如需詳細資訊,請參閱清除 Amazon ECS 資源。
-
停止 layer 的執行個體,然後刪除執行個體。當您停止容器執行個體時, AWS OpsWorks Stacks 會自動停止任何執行中的任務、從叢集取消註冊執行個體,以及終止執行個體。
注意
如果您已向堆疊註冊現有的容器執行個體,您可以從 layer 取消指派執行個體,然後取消註冊執行個體,這會傳回執行個體進行ECS控制。
-
刪除 layer. AWS OpsWorks Stacks 會取消註冊相關聯的叢集,但不會將其刪除。叢集會保留在 Amazon 中ECS。