本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:通过 AWS Management Console 和 Amazon ECS 控制台使用集群自动扩缩
本教程分步演示了使用 AWS Management Console 创建用于集群 Auto Scaling 的资源。如果资源需要名称,我们将使用前缀 ConsoleTutorial
来确保它们都具有唯一的名称,并使它们易于找到。
先决条件
本教程假设以下先决条件已完成:
-
设置以使用 Amazon ECS 中的步骤已完成。
-
您的 AWS 用户具有 Amazon ECS 首次运行向导权限 IAM policy 示例中指定的所需权限。
-
创建 Amazon ECS 容器实例 IAM 角色。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色:
-
创建 Amazon ECS 服务相关 IAM 角色。有关更多信息,请参阅对 Amazon ECS 使用服务相关角色:
-
创建 Auto Scaling 服务相关 IAM 角色 有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的 Amazon EC2 Auto Scaling 的服务相关角色。
-
您已创建要使用的 VPC 和安全组。有关更多信息,请参阅创建 Virtual Private Cloud:
步骤 1:创建 Amazon ECS 集群
请按照以下步骤创建 Amazon ECS 集群。
Amazon ECS 将代表您创建一个 Amazon EC2 Auto Scaling 启动模板和 自动扩缩组,作为 AWS CloudFormation 堆栈的一部分。
-
在导航窗格中,选择集群,然后选择创建集群。
-
在集群配置下方的集群名称中,输入
ConsoleTutorial-cluster
。 -
在 “基础架构” 下,清除 AWS Fargate(无服务器),然后选择 Amazon EC2 实例。接下来,配置充当容量提供程序的自动扩缩组。
-
在 Auto Scaling 组 (ASG) 下。选择 “创建新 ASG”,然后提供有关该群组的以下详细信息:
-
对于操作系统/架构,选择 Amazon Linux 2。
-
对于 EC2 实例类型,选择 t3.nano。
-
对于 Capacity(容量),输入 自动扩缩组中启动的实例数的最小值和最大值。
-
-
-
(可选)要管理集群标签,请展开 Tags(标签),然后执行以下操作之一:
[添加标签] 选择 Add tag(添加标签),然后执行以下操作:
-
对于 Key(键),输入键名称。
-
对于 Value(值),输入键值。
[删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。
-
-
选择Create(创建)。
第 2 步:注册任务定义
您必须先注册任务定义,然后才能在集群上运行任务。任务定义是分组在一起的一系列容器。以下示例是一个简单的任务定义,它使用 Docker Hub 中的 amazonlinux
映像,并且直接休眠。有关可用任务定义参数的更多信息,请参阅 Amazon ECS 任务定义。
-
在导航窗格中,选择 Task definitions(任务定义)。
-
选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。
-
在 JSON 编辑器框中,粘贴以下内容。
{ "family": "ConsoleTutorial-taskdef", "containerDefinitions": [ { "name": "sleep", "image": "amazonlinux:2", "memory": 20, "essential": true, "command": [ "sh", "-c", "sleep infinity" ] } ], "requiresCompatibilities": [ "EC2" ] }
-
选择创建。
第 3 步:运行任务
为您的账户注册任务定义后,您可以在集群中运行任务。在本教程中,您将在 ConsoleTutorial-cluster
集群中运行五个 ConsoleTutorial-taskdef
任务定义实例。
-
在集群页面上,选择 ConsoleTutorial-clu ster。
-
在 “任务” 下,选择 “运行新任务”。
-
在环境部分的计算选项下,选择容量提供者策略。
-
在 “部署配置” 下,对于 “应用程序类型”,选择 “任务”。
-
对于 “家庭”,选择 ConsoleTutorial-taskdef。
-
在 “所需任务” 下,输入 5。
-
选择创建。
第 4 步:验证
在本教程中,您应该有一个运行五个任务的集群和一个带有容量提供程序的 Auto Scaling 组。容量提供商已启用 Amazon ECS 托管扩展。
我们可以通过查看 CloudWatch 指标、Auto Scaling 组设置以及 Amazon ECS 集群任务计数来验证一切是否正常运行。
查看集群的 CloudWatch 指标
打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格的 “指标” 下,选择 “所有指标”。
-
在所有指标页面的浏览选项卡下,选择
AWS/ECS/ManagedScaling
。 -
选择 CapacityProviderName, ClusterName。
-
选中与对应的复选框
ConsoleTutorial-cluster
ClusterName。 -
在图表化指标选项卡下,将周期更改为 30 秒,将统计数据更改为最大值。
图中的值显示了容量提供程序的目标容量值。它应该从
100
开始,这是我们设定的目标容量百分比。您应该看到它扩展到200
,这将触发目标跟踪调整策略的警报。然后,警报将触发 自动扩缩组扩展。
按照以下步骤查看您的 自动扩缩组详细信息,以确认执行了扩展操作。
确认 自动扩缩组已扩展
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格的 Auto Scaling 下,选择 自动扩缩组。
-
选择在本教程中创建的
ConsoleTutorial-cluster
Auto Scaling 组。查看 “所需容量” 下的值,然后在 “实例管理” 选项卡下查看实例,以确认您的组已扩展到两个实例。
按照以下步骤查看您的 Amazon ECS 集群,以确认 Amazon EC2 实例已注册到集群,并且您的任务已转变为 RUNNING
状态。
要验证 自动扩缩组中的实例
-
在导航窗格中,选择 Clusters。
-
在 Clusters(集群)页面上,选择
ConsoleTutorial-cluster
集群。 -
在 “任务” 选项卡上,确认您看到五个任务处于
RUNNING
状态。
第 5 步:清除
完成本教程后,请清除与本教程关联的资源,以避免对您未使用的资源产生费用。不支持删除容量提供程序和任务定义,但这些资源不会产生任何开销。
清除教程资源
-
在导航窗格中,选择 Clusters。
-
在集群页面上,选择 ConsoleTutorial-clu ster。
-
在 ConsoleTutorial-cluster 页面上,选择任务选项卡,然后选择停止,全部停止。
-
在导航窗格中,选择 Clusters。
-
在集群页面上,选择 ConsoleTutorial-clu ster。
-
选择 Delete Cluster (删除集群)。
-
在确认框中,输入 delet ConsoleTutoriale-clust er,然后选择删除。
-
按照以下步骤删除 自动扩缩组。
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格的 Auto Scaling 下,选择 自动扩缩组。
-
选择
ConsoleTutorial-cluster
Auto Scaling 组,然后选择操作。 -
从 Actions 菜单中选择 Delete 。在确认框中输入 “删除”,然后选择 “删除”。