本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ECS 集群层
重要
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
亚马逊弹性容器服务 (Amazon ECS) 管理亚马逊弹性计算云 (Amazon EC2) 实例集群(称为容器实例)上的 Docker 容器。ECS 集群层表示 Amazon ECS 集群,并通过提供相关功能来简化集群管理,这些功能包括:
-
简化的容器实例预配置和管理
-
容器实例操作系统和软件包更新
-
用户权限管理
-
容器实例性能监控
-
Amazon Elastic Block Store(Amazon EBS)卷管理
-
公有和弹性 IP 地址管理
-
安全组管理
ECS 集群层具有以下限制和要求:
-
层仅适用于在 VPC(包括默认 VPC)中运行的 Chef 11.10 或 Chef 12 Linux 堆栈。
-
层的实例必须运行以下操作系统之一。
-
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
-
自定义
-
-
层的实例上的 AWS OpsWorks Stacks 代理版本必须为
3425-20150727112318
或更高版本。
向堆栈添加 ECS 集群层
AWS OpsWorks 堆栈简化了为现有 Amazon ECS 集群启动和维护容器实例的过程。要创建或启动其他 Amazon ECS 实体(如集群和任务),请使用 Amazon ECS 控制台、命令行界面 (CLI) 或 API。(有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》。) 然后,您可以通过创建 ECS 集群层将群集与堆栈关联起来,您可以使用该层管理 AWS OpsWorks 堆栈中的群集。
您可以将集群与堆栈关联,如下所示:
-
每个堆栈均可具有一个 ECS 集群层,它表示一个集群。
-
一个集群只能与一个堆栈关联。
在将 ECS 集群层添加到堆栈之前,必须更新 AWS OpsWorks 堆栈 AWS Identity and Access Management
(IAM) 服务角色(通常命名为)aws-opsworks-service-role
,以允许 AWS OpsWorks 堆栈代表您与 Amazon ECS 进行交互。有关服务角色的更多信息,请参阅允许 AWS OpsWorks Stacks 代表你行事。
首次创建 ECS 集群层时,控制台会提供一个更新按钮,您可以选择该按钮指示 AWS OpsWorks Stacks 为您更新角色。 AWS OpsWorks 然后,Stacks 会显示 “添加图层” 页面,以便您可以将图层添加到堆栈中。您只需更新服务角色一次。随后,您可以使用更新后的角色将 ECS 集群层添加到任意堆栈。
注意
如果您愿意,可以通过向现有策略添加 ecs:*
权限来手动更新服务角色的策略,如下所示:
{ "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*", "ecs:*" ], "Effect": "Allow", "Resource": ["*"] } ] }
将集群与堆栈关联需要执行两项操作:将集群注册到堆栈,然后创建关联的层。 AWS OpsWorks Stacks 控制台结合了这些步骤;图层创建会自动注册指定的集群。如果您使用 AWS OpsWorks 堆栈 API、CLI 或 SDK,则必须使用单独的操作来注册集群并创建关联层。要使用控制台将 ECS 集群层添加到堆栈,请选择层,再选择+层或添加层,然后选择 ECS 集群层类型。

Add Layer 页面包括以下配置选项:
- ECS 集群
-
要注册到堆栈的 Amazon ECS 集群。
- EC2 实例配置文件
-
集群的亚马逊弹性计算云 (Amazon EC2) 实例配置文件。此配置文件向正在集群的容器实例上运行的应用程序授予对其他 Amazon Web Service (包括 Amazon ECS) 的访问权。创建第一个 ECS 集群层时,选择新建配置文件并允许 ECS 访问直接 AWS OpsWorks 堆栈来创建所需的配置文件,该配置文件名
aws-opsworks-ec2-role-with-ecs
为。随后,您可以对所有后续 ECS 集群层使用该配置文件。有关实例配置文件的更多信息,请参阅为在 EC2 实例上运行的应用程序指定权限。
您可以通过编辑层的配置来指定其他设置,包括:
-
将 Elastic Load Balancing 负载均衡器连接到任何层。
此方法可能适合某些用例,但 Amazon ECS 提供了更高级的选项。有关更多信息,请参阅服务负载均衡。
-
指定是否自动向容器实例分配公有 IP 地址或弹性 IP 地址。
如果您禁用针对两个地址类型的自动分配,则除非子网已正确配置 NAT,否则该实例将无法联机。有关更多信息,请参阅 在 VPC 中运行堆栈。
管理 ECS 集群
创建 ECS 集群层后,您可以使用 AWS OpsWorks 堆栈管理集群,如下所示:
- 预配置和管理容器实例
-
最初,ECS 集群层不包括任何容器实例,即使原始集群包含容器实例也是如此。一个选择是使用以下项的适当组合来管理层的实例:
-
通过向层添加基于时间的实例来按计划添加或删除实例。
-
通过向层中添加基于负载的实例,根据 AWS OpsWorks Stacks 主机指标或 CloudWatch 警报添加或删除实例。
注意
如果堆栈的默认操作系统不支持 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 优化的 AMI 在 ECS 层中创建实例,因为此 AMI 已经包含 ECS 代理。 AWS OpsWorks Stacks 还会在实例设置过程中尝试安装 ECS 代理,冲突可能导致安装失败。
有关更多信息,请参阅优化服务器数。 AWS OpsWorks 堆栈将 A WS 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 提供了多种方法来监控堆栈、层或单个实例的性能指标。有关更多信息,请参阅 监控。
您通过 Amazon ECS 处理其他管理任务,例如创建任务或服务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南。
注意
要直接转到 Amazon ECS 控制台上的集群页,请选择实例,然后选择 ECS 集群(位于 ECS 集群层的部分的右上角附近)。
从堆栈中删除 ECS 集群层
当您不再需要集群时,请删除 ECS 集群层并取消注册关联的集群。从堆栈中删除集群需要执行两项操作:取消注册集群,然后删除关联的层。 AWS OpsWorks Stacks 控制台结合了这些步骤;删除图层会自动注销指定集群的注册。如果您使用 AWS OpsWorks Stacks API、CLI 或 SDK,则必须使用单独的操作来注销集群并删除关联的层。
使用控制台删除 ECS 集群层
-
如果您要控制任务的关闭方式,请使用 Amazon ECS 控制台、API 或 CLI 来缩减和删除集群的服务。有关更多信息,请参阅清除您的 Amazon ECS 资源。
-
停止层的实例,然后将其删除。当您停止容器实例时, AWS OpsWorks Stacks 会自动停止所有正在运行的任务,从集群中注销该实例,并终止该实例。
-
删除图层。 AWS OpsWorks Stacks 会取消注册关联的集群,但不会将其删除。该集群将保留在 Amazon ECS 中。