使用 Amazon Web Services Management Console 创建 Amazon ECS 集群自动扩缩资源 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon Web Services Management Console 创建 Amazon ECS 集群自动扩缩资源

了解如何使用 Amazon Web Services Management Console 创建用于集群自动扩缩的资源。如果资源需要名称,我们将使用前缀 ConsoleTutorial 来确保它们都具有唯一的名称,并使它们易于找到。

先决条件

本教程假设以下先决条件已完成:

步骤 1:创建 Amazon ECS 集群

请按照以下步骤创建 Amazon ECS 集群。

Amazon ECS 将代表您创建一个 Amazon EC2 Auto Scaling 启动模板和 自动扩缩组,作为 Amazon CloudFormation 堆栈的一部分。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群,然后选择创建集群

  3. 集群配置下方的集群名称中,输入 ConsoleTutorial-cluster

  4. 基础设施下,清除 Amazon Fargate(无服务器),然后选择 Amazon EC2 实例。接下来,配置充当容量提供程序的自动扩缩组。

    1. 自动扩缩组(ASG)下。选择创建新 ASG,然后提供有关该组的以下详细信息:

      • 对于操作系统/架构,选择 Amazon Linux 2

      • 对于 EC2 实例类型,选择 t3.nano

      • 对于 Capacity(容量),输入 自动扩缩组中启动的实例数的最小值和最大值。

  5. (可选)要管理集群标签,请展开 Tags(标签),然后执行以下操作之一:

    [添加标签] 选择 Add tag(添加标签),然后执行以下操作:

    • 对于 Key(键),输入键名称。

    • 对于,输入键值。

    [删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。

  6. 选择创建

第 2 步:注册任务定义

您必须先注册任务定义,然后才能在集群上运行任务。任务定义是分组在一起的一系列容器。以下示例是一个简单的任务定义,它使用 Docker Hub 中的 amazonlinux 映像,并且直接休眠。有关可用任务定义参数的更多信息,请参阅 Amazon ECS 任务定义

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择 Task definitions(任务定义)。

  3. 选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。

  4. JSON 编辑器框中,粘贴以下内容。

    { "family": "ConsoleTutorial-taskdef", "containerDefinitions": [ { "name": "sleep", "image": "public.ecr.aws/amazonlinux/amazonlinux:latest", "memory": 20, "essential": true, "command": [ "sh", "-c", "sleep infinity" ] } ], "requiresCompatibilities": [ "EC2" ] }
  5. 选择创建

第 3 步:运行任务

为您的账户注册任务定义后,您可以在集群中运行任务。在本教程中,您将在 ConsoleTutorial-cluster 集群中运行五个 ConsoleTutorial-taskdef 任务定义实例。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 集群页面上,选择 ConsoleTutorial-cluster

  3. 任务下,选择运行新任务

  4. 环境部分的计算选项下,选择容量提供程序策略

  5. 部署配置下,对于应用程序类型,选择任务

  6. 系列下拉列表中选择 ConsoleTutorial-taskdef

  7. 所需任务下,输入 5。

  8. 选择创建

第 4 步:验证

本教程到目前为止,您应该有一个运行五个任务的集群和一个带有容量提供程序的自动扩缩组。容量提供程序已启用 Amazon ECS 托管扩展。

我们可以通过查看 CloudWatch 指标、自动扩缩组设置和 Amazon ECS 集群任务计数来确认是否一切正常。

查看集群的 CloudWatch 指标
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在屏幕顶部的导航栏中,选择 区域。

  3. 在导航窗格中,在指标下,选择所有指标

  4. 所有指标页面的浏览选项卡下,选择 AWS/ECS/ManagedScaling

  5. 选择 CapacityProviderName, ClusterName

  6. 选中与 ConsoleTutorial-cluster 集群名称对应的复选框。

  7. 图形化指标选项卡下,将周期更改为 30 秒,将统计数据 更改为最大

    图中的值显示了容量提供程序的目标容量值。它应该从 100 开始,这是我们设定的目标容量百分比。您应该看到它扩展到 200,这将触发目标跟踪调整策略的警报。然后,警报将触发 自动扩缩组扩展。

按照以下步骤查看您的 自动扩缩组详细信息,以确认执行了扩展操作。

确认 自动扩缩组已扩展
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在屏幕顶部的导航栏中,选择 区域。

  3. 在导航窗格的 Auto Scaling 下,选择 自动扩缩组

  4. 选择在本教程中创建的 ConsoleTutorial-cluster 自动扩缩组。查看所需容量下的值,然后在实例管理选项卡下查看实例,以确认您的组已横向扩展到两个实例。

按照以下步骤查看您的 Amazon ECS 集群,以确认 Amazon EC2 实例已注册到集群,并且您的任务已转变为 RUNNING 状态。

要验证 自动扩缩组中的实例
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群

  3. Clusters(集群)页面上,选择 ConsoleTutorial-cluster 集群。

  4. 任务选项卡上,确认您看到五个处于 RUNNING 状态的任务。

第 5 步:清理

完成本教程后,请清除与本教程关联的资源,以避免对您未使用的资源产生费用。不支持删除容量提供程序和任务定义,但这些资源不会产生任何开销。

清除教程资源
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群

  3. 集群页面上,选择 ConsoleTutorial-cluster

  4. ConsoleTutorial-cluster 页面上,选择任务选项卡,然后选择停止全部停止

  5. 在导航窗格中,选择集群

  6. 集群页面上,选择 ConsoleTutorial-cluster

  7. 在页面的右上角,选择删除集群

  8. 在确认框中,输入 delete ConsoleTutorial-cluster,然后选择删除

  9. 按照以下步骤删除 自动扩缩组。

    1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 在屏幕顶部的导航栏中,选择 区域。

    3. 在导航窗格的 Auto Scaling 下,选择 自动扩缩组

    4. 选择 ConsoleTutorial-cluster 自动扩缩组,然后选择操作

    5. Actions 菜单中选择 Delete 。在确认框中,输入 delete,然后选择删除