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

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

本教程分步演示了使用 AWS Management Console 和经典 Amazon ECS 控制台创建用于集群自动扩缩的资源。如果资源需要名称,我们将使用前缀 ConsoleTutorial 来确保它们都具有唯一的名称,并使它们易于找到。

先决条件

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

步骤 1:创建 Amazon ECS 集群

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

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

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

  2. 从导航栏中,选择要使用的区域。

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

  4. Clusters(集群)页面上,选择 Create cluster(创建集群)。

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

  6. 向集群添加 Amazon EC2 实例,展开基础设施,然后选择 Amazon EC2 实例。接下来,配置充当容量提供程序的自动扩缩组。

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

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

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

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

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

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

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

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

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

  8. 选择创建

第 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. 选择 Create(创建)。

第 3 步:运行任务

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

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

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

  3. 任务选项卡上,选择创建

  4. 对于启动类型,选择 EC2

  5. 对于应用程序类型,选择任务

  6. 对于任务定义,选择 ConsoleTutorial-taskdef

  7. 选择 Create(创建)。

第 4 步:验证

本教程到目前为止,您应该有两个 自动扩缩组,每个组都有一个容量提供程序。容量提供程序已启用 Amazon ECS 托管调整。已创建一个集群,五个任务正在运行。

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

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

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

  3. 在导航窗格上,选择 Metrics (指标)

  4. 全部指标选项卡上,选择 AWS/ECS/ManagedScaling

  5. 选择 CapacityProviderName, ClusterName

  6. 选择与 ConsoleTutorial-capacityprovider 容量提供程序对应的指标。

  7. Graphed metrics (图形化指标) 选项卡上,将 Period (周期) 更改为 30 seconds (30 秒),将 Statistic (统计数据) 更改为 Maximum (最大)

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

  8. 为您的 ConsoleTutorial-capacityprovider-burst 指标重复步骤 5 至 6。

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

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

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

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

  4. 对于每个 自动扩缩组,查看实例所需列中的值,以确认您的组扩展到每个组两个实例。

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

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

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

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

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

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

第 5 步:清除

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

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

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

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

  4. 集群:ConsoleTutorial-cluster 页面上,选择任务选项卡。

    依次选择停止全部停止

  5. Stop confirmation page(停止确认页面)上,输入 Stop,然后选择 Stop(停止)。

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

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

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

  9. 在确认框中,输入 delete ConsoleTutorial-cluster

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

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

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

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

    4. 选择您的 ConsoleTutorial-ASG 自动扩缩组,然后从操作菜单中选择删除

    5. 选择您的 ConsoleTutorial-ASG-burst 自动扩缩组,然后从操作菜单中选择删除