ECS 集群层 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ECS 集群层

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

Amazon Elastic Container Service (Amazon ECS) 管理名为容器实例的Amazon Elastic Compute Cloud (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 Stacks 简化了启动和维护现有 Amazon ECS 集群的容器实例的过程。要创建或启动其他 Amazon ECS 实体(如集群和任务),请使用 Amazon ECS 控制台、命令行界面 (CLI) 或 API。(有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》。) 随后,您可以通过创建 ECS 集群层来将集群与堆栈关联,该层可用来管理 AWS OpsWorks Stacks 中的集群。

您可以将集群与堆栈关联,如下所示:

  • 每个堆栈均可具有一个 ECS 集群层,它表示一个集群。

  • 一个集群只能与一个堆栈关联。

您必须先更新 AWS OpsWorks Stacks AWS Identity and Access Management (IAM) 服务角色(通常名为 aws-opsworks-service-role)以允许 AWS OpsWorks Stacks 代表您与 Amazon ECS 交互,然后才能向堆栈添加 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 Stacks API、CLI 或开发工具包,则必须使用单独的操作来注册集群并创建关联的层。要使用控制台将 ECS 集群层添加到堆栈,请选择,再选择+层添加层,然后选择 ECS 集群层类型。

Add Layer 页面包括以下配置选项:

ECS 集群

要注册到堆栈的 Amazon ECS 集群。

EC2 实例配置文件

集群的 Amazon Elastic Compute Cloud(Amazon EC2)实例配置文件。此配置文件向正在集群的容器实例上运行的应用程序授予对其他 Amazon Web Service (包括 Amazon ECS) 的访问权。在创建您的第一个 ECS 集群层时,选择具有 ECS 访问权限的新配置文件可指示 AWS OpsWorks Stacks 创建所需的配置文件(名为 aws-opsworks-ec2-role-with-ecs)。随后,您可以对所有后续 ECS 集群层使用该配置文件。有关实例配置文件的更多信息,请参阅为在 EC2 实例上运行的应用程序指定权限

您可以通过编辑层的配置来指定其他设置,包括:

管理 ECS 集群

在创建 ECS 集群层后,您可以使用 AWS OpsWorks Stacks 来管理集群,如下所示:

预配置和管理容器实例

最初,ECS 集群层不包括任何容器实例,即使原始集群包含容器实例也是如此。一个选择是使用以下项的适当组合来管理层的实例:

注意

如果堆栈的默认操作系统不支持 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 OpsWorksStacks 还在实例设置过程中尝试安装 ECS 代理,而冲突可能会导致设置失败。

有关更多信息,请参阅 优化服务器数。AWS OpsWorksStacks 将 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 提供了多种方法来监控堆栈、层或单个实例的性能指标。有关更多信息,请参阅监控

您通过 Amazon ECS 处理其他管理任务,例如创建任务或服务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南

注意

要直接转到 Amazon ECS 控制台上的集群页,请选择实例,然后选择 ECS 集群(位于 ECS 集群层的部分的右上角附近)。

从堆栈中删除 ECS 集群层

当您不再需要集群时,请删除 ECS 集群层并取消注册关联的集群。从堆栈中删除集群需要执行两项操作:取消注册集群,然后删除关联的层。AWS OpsWorks Stacks 控制台将这些步骤组合在一起;层删除操作将自动取消注册指定的集群。如果您使用 AWS OpsWorks Stacks API、CLI 或开发工具包,则必须使用单独的操作来取消注册集群并删除关联的层。

使用控制台删除 ECS 集群层
  1. 如果您要控制任务的关闭方式,请使用 Amazon ECS 控制台、API 或 CLI 来缩减和删除集群的服务。有关更多信息,请参阅清除您的 Amazon ECS 资源

  2. 停止层的实例,然后将其删除。当您停止容器实例时,AWS OpsWorks Stacks 会自动停止任何正在运行的任务,从集群取消注册该实例,并终止该实例。

    注意

    如果您具有与堆栈关联的现有容器实例,您可以从层取消分配实例,然后取消注册实例,这会将实例返回到 ECS 控制。

  3. 删除层。AWS OpsWorksStacks 取消注册关联的集群,但不会删除该集群。该集群将保留在 Amazon ECS 中。