教程:通过 AWS Management Console 和 Amazon ECS 控制台使用集群自动扩缩
本教程分步演示了使用 AWS Management Console 和经典 Amazon ECS 控制台创建用于集群自动扩缩的资源。如果资源需要名称,我们将使用前缀 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 堆栈的一部分。
-
从导航栏中,选择要使用的区域。
-
在导航窗格中,选择 Clusters。
-
在 Clusters(集群)页面上,选择 Create cluster(创建集群)。
-
在集群配置下方的集群名称中,输入
ConsoleTutorial-cluster
。 -
向集群添加 Amazon EC2 实例,展开基础设施,然后选择 Amazon EC2 实例。接下来,配置充当容量提供程序的自动扩缩组。
-
从自动扩缩组(ASG)创建一个自动扩缩组。选择创建新组,然后提供有关该组的以下详细信息:
-
对于操作系统/架构,选择 Amazon Linux 2。
-
对于 EC2 实例类型,选择 t3.nano。
-
对于容量,输入 0 作为自动扩缩组中启动的实例数的最小值和最大值。
-
-
-
(可选)要管理集群标签,请展开 Tags(标签),然后执行以下操作之一:
[添加标签] 选择 Add tag(添加标签),然后执行以下操作:
-
对于 Key(键),输入键名称。
-
对于 Value(值),输入键值。
[删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。
-
-
选择创建。
第 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" ] }
-
选择 Create(创建)。
第 3 步:运行任务
为您的账户注册任务定义后,您可以在集群中运行任务。在本教程中,您将在 ConsoleTutorial-cluster
集群中运行五个 ConsoleTutorial-taskdef
任务定义实例。
-
在集群页面上,选择 ConsoleTutorial-cluster。
-
在任务选项卡上,选择创建。
-
对于启动类型,选择 EC2。
-
对于应用程序类型,选择任务。
-
对于任务定义,选择 ConsoleTutorial-taskdef。
-
选择 Create(创建)。
第 4 步:验证
本教程到目前为止,您应该有两个 自动扩缩组,每个组都有一个容量提供程序。容量提供程序已启用 Amazon ECS 托管调整。已创建一个集群,五个任务正在运行。
我们可以通过查看 CloudWatch 指标、自动扩缩组设置和 Amazon ECS 集群任务计数来确认是否一切正常。
查看集群的 CloudWatch 指标
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格上,选择 Metrics (指标)。
-
在全部指标选项卡上,选择
AWS/ECS/ManagedScaling
。 -
选择 CapacityProviderName, ClusterName。
-
选择与 ConsoleTutorial-capacityprovider 容量提供程序对应的指标。
-
在 Graphed metrics (图形化指标) 选项卡上,将 Period (周期) 更改为 30 seconds (30 秒),将 Statistic (统计数据) 更改为 Maximum (最大)。
图中的值显示了容量提供程序的目标容量值。它应该从
100
开始,这是我们设定的目标容量百分比。您应该看到它扩展到200
,这将触发目标跟踪调整策略的警报。然后,警报将触发 自动扩缩组扩展。 -
为您的 ConsoleTutorial-capacityprovider-burst 指标重复步骤 5 至 6。
按照以下步骤查看您的 自动扩缩组详细信息,以确认执行了扩展操作。
确认 自动扩缩组已扩展
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格的 Auto Scaling 下,选择 自动扩缩组。
-
对于每个 自动扩缩组,查看实例和所需列中的值,以确认您的组扩展到每个组两个实例。
按照以下步骤查看您的 Amazon ECS 集群,以确认 Amazon EC2 实例已注册到集群,并且您的任务已转变为 RUNNING
状态。
要验证 自动扩缩组中的实例
-
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格中,选择 Clusters。
-
在 Clusters (集群) 页面上,选择您的
ConsoleTutorial-cluster
集群。 -
在 Tasks (任务) 选项卡上,确认您看到五个处于
RUNNING
状态的任务。
第 5 步:清除
完成本教程后,请清除与本教程关联的资源,以避免对您未使用的资源产生费用。不支持删除容量提供程序和任务定义,但这些资源不会产生任何开销。
清除教程资源
-
在导航窗格中,选择 Clusters。
-
在 Clusters(集群)页面上,选择集群。
-
在集群:ConsoleTutorial-cluster 页面上,选择任务选项卡。
依次选择停止、全部停止。
-
在 Stop confirmation page(停止确认页面)上,输入 Stop,然后选择 Stop(停止)。
-
在导航窗格中,选择 Clusters。
-
在集群页面上,选择 ConsoleTutorial-cluster。
-
在页面的右上角,选择删除集群。
-
在确认框中,输入 delete ConsoleTutorial-cluster。
-
按照以下步骤删除 自动扩缩组。
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在屏幕顶部的导航栏中,选择 区域。
-
在导航窗格的 Auto Scaling 下,选择 自动扩缩组。
-
选择您的 ConsoleTutorial-ASG 自动扩缩组,然后从操作菜单中选择删除。
-
选择您的 ConsoleTutorial-ASG-burst 自动扩缩组,然后从操作菜单中选择删除。