ECS 集群层 - AWS OpsWorks

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

ECS 集群层

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS 支持 团队联系。

亚马逊弹性容器服务 (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 集群层类型。

Form to add an ECS 集群 Layer, showing layer type, 集群 selection, and EC2 instance profile options.

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 实例上运行的应用程序指定权限

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

管理 ECS 集群

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

预配置和管理容器实例

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

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

    注意

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

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