教程:通过 AWS Management Console 和 Amazon ECS 控制台使用集群自动扩缩 - Amazon Elastic Container Service

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

教程:通过 AWS Management Console 和 Amazon ECS 控制台使用集群自动扩缩

本教程分步演示了使用 AWS Management Console 创建用于集群 Auto Scaling 的资源。如果资源需要名称,我们将使用前缀 ConsoleTutorial 来确保它们都具有唯一的名称,并使它们易于找到。

先决条件

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

步骤 1:创建 Amazon ECS 集群

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

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

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

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

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

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

    1. Auto Scaling 组 (ASG) 下。选择 “创建新 ASG”,然后提供有关该群组的以下详细信息:

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

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

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

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

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

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

    • 对于 Value(值),输入键值。

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

  6. 选择Create(创建)。

第 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": "amazonlinux:2", "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-clu ster。

  3. 在 “任务” 下,选择 “运行新任务”。

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

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

  6. 对于 “家庭”,选择 ConsoleTutorial-taskdef

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

  8. 选择创建

第 4 步:验证

在本教程中,您应该有一个运行五个任务的集群和一个带有容量提供程序的 Auto Scaling 组。容量提供商已启用 Amazon ECS 托管扩展。

我们可以通过查看 CloudWatch 指标、Auto Scaling 组设置以及 Amazon ECS 集群任务计数来验证一切是否正常运行。

查看集群的 CloudWatch 指标
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

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

  3. 在导航窗格的 “指标” 下,选择 “所有指标”。

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

  5. 选择 CapacityProviderName, ClusterName

  6. 选中与对应的复选框ConsoleTutorial-cluster ClusterName

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

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

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

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

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

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

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

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

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

  2. 在导航窗格中,选择 Clusters

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

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

第 5 步:清除

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

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

  2. 在导航窗格中,选择 Clusters

  3. 集群页面上,选择 ConsoleTutorial-clu ster。

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

  5. 在导航窗格中,选择 Clusters

  6. 集群页面上,选择 ConsoleTutorial-clu ster。

  7. 选择 Delete Cluster (删除集群)

  8. 在确认框中,输入 delet ConsoleTutoriale-clust er,然后选择删除

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

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

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

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

    4. 选择 ConsoleTutorial-cluster Auto Scaling 组,然后选择操作

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