教程:创建您的第一个 Auto Scaling 群组 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:创建您的第一个 Auto Scaling 群组

本教程通过手把手介绍了 Amazon EC2 Auto Scaling Amazon Web Services Management Console。您将创建一个定义您的 EC2 实例的启动模板和一个包含单个实例的 Auto Scaling 组。启动 Auto Scaling 组后,您将终止该实例并验证该实例是否已从服务中移除并被替换。为了保持恒定数量的实例,Amazon EC2 Auto Scaling 会自动检测并响应 Amazon EC2 运行状况和可到达性检查。

注册后 Amazon,您可以使用免费套餐Amazon 免费开始使用 Amazon EC2 Auto Scaling。您可以使用免费套餐在 12 个月内免费启动和使用 t2.micro 实例(在 t2.micro 不可用的区域,您可以使用免费套餐下的 t3.micro 实例)。如果您启动不在免费套餐范围内的实例,则需要为该实例支付标准 Amazon EC2 使用费。有关更多信息,请参阅Amazon EC2定价

准备演练

本演练假定您熟悉 EC2 实例的启动并已创建密钥对和安全组。有关更多信息,请参见适用于 Linux 实例的 Amazon EC2 用户指南中的设置 Amazon EC2

要开始使用 Amazon EC2 Auto Scaling,您可以为自己使用默认 VPC Amazon Web Services 账户。默认 VPC 在各个可用区中包含一个默认公有子网,以及连接到您 VPC 的 Internet 网关。您可以在 Amazon Virtual Private Cloud (Amazon VPC) 控制台的您的 VPC 页面查看您的 VPC。

步骤 1:创建启动模板

在此步骤中,您将创建一个启动模板,该模板指定 Amazon EC2 Auto Scaling 为您创建的 EC2 实例的类型。包含一些信息,例如将使用的 Amazon Machine Image (AMI) 的 ID、实例类型、密钥对和安全组。

创建启动模板
  1. 打开 Amazon EC2 控制台,进入启动模板页面

  2. 在顶部导航栏上,选择一个 Amazon Web Services 区域。您创建的启动模板和自动扩缩组将会与您所指定的区域绑定。

  3. 选择Create launch template(创建启动模板)。

  4. 对于 Launch template name(启动模板名称),输入 my-template-for-auto-scaling

  5. Auto Scaling guidance(Auto Scaling 指导)下,选中复选框。

  6. 对于 Application and OS Images (Amazon Machine Image) [应用程序和操作系统镜像(Amazon Machine Image)],请从 Quick Start(快速启动)列表中选择一个 Amazon Linux 2(HVM)版本。AMI 用作实例的基本配置模板。

  7. 对于 Instance type(实例类型),选择与您指定的 AMI 兼容的硬件配置。

  8. (可选)对于 Key pair (login) [密钥对(登录)],选择一个现有的密钥对。您可以使用密钥对连接包含 SSH 的 Amazon EC2 实例。有关连接到实例的内容不包括在本教程中。因此,除非您计划使用 SSH 连接到实例,否则不需要指定密钥对。

  9. 对于 Network settings(网络设置),展开 Advanced network configuration(高级网络配置),然后执行以下操作:

    1. 选择 Add network interface(添加网络接口)以配置主网络接口。

    2. 对于自动分配公有 IP,请指定您的实例是否接收公有 IPv4 地址。默认情况下,如果 EC2 实例在默认子网中启动,或者实例启动到配置为自动分配公有 IPv4 地址的子网,则 Amazon EC2 会分配公有 IPv4 地址。如果您不需要连接到您的实例,请选择禁用

    3. 对于安全组 ID,请在计划用作 Auto Scaling 组的 VPC 的同一 VPC 内选择一个安全组。如果您没有指定安全组,实例会自动与 VPC 的默认安全组关联。

    4. 对于 “终止时删除”,选择 “”,以便在删除实例时删除网络接口。

  10. 选择Create launch template(创建启动模板)。

  11. 在确认页面上,选择 Create Auto Scaling group(创建 Auto Scaling 组)。

步骤 2:创建单个实例 Auto Scaling 组

创建启动模板后,按照以下步骤继续上次停下来的地方。

创建 自动扩缩组
  1. 选择启动模板或配置页面上,对于 Auto Scaling 组名称,输入 my-first-asg

  2. 选择 Next(下一步)。

    将出现 “选择实例启动选项” 页面,允许您选择希望 Auto Scaling 组使用的 VPC 网络设置,并为您提供启动按需实例和竞价型实例的选项。

  3. 网络部分,将 VPC 设置为您选择的默认 VPC Amazon Web Services 区域,或者选择您自己的 VPC。默认 VPC 会自动配置为向您的实例提供 Internet 连接。此 VPC 在区域的每个可用区中均包含一个公有子网。

  4. 对于 Availability Zones and subnets(可用区和子网),请从您希望包含的每个可用区中选择一个子网。可以在多个可用区中使用子网以提供高可用性。有关更多信息,请参阅 选择 VPC 子网时的注意事项

  5. Instance type requirements(实例类型要求)部分中,使用默认设置简化此步骤。(请勿覆盖启动模板。) 在本教程中,您将仅使用启动模板中指定的实例类型启动一个按需型实例。

  6. 保留本教程的其余默认值,然后选择 Skip to review(跳到审核)。

    注意

    组的初始规模由其所需容量决定。默认值为 1 实例。

  7. Review(审核)页面上,查看组的信息,然后选择 Create Auto Scaling group(创建 Auto Scaling 组)。

步骤 3:验证您的 Auto Scaling 组

现在,您已创建 Auto Scaling 组,可验证该组是否已启动 EC2 实例。

提示

在以下过程中,您需要查看 Auto Scaling 组的 Activity history(活动历史记录)和 Instances(实例)部分。这两个部分都会已经显示已命名的列。要显示隐藏的列或更改显示的行数,请选择每个部分右上角的齿轮图标以打开首选项模式,根据需要更新设置,然后选择 Confirm(确认)。

验证 Auto Scaling 组已启动 EC2 实例
  1. 打开 Amazon EC2 控制台中的 自动扩缩组页面

  2. 选中刚创建的 Auto Scaling 组旁边的复选框。

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。可用的第一个选项卡是 Details(详细信息)选项卡,显示有关 Auto Scaling 组的信息。

  3. 选择第二个选项卡,即 Activity(活动)。在 Activity history(活动历史记录)下,您可以查看与 Auto Scaling 组关联的活动的进度。Status(状态)列显示您实例的当前状态。当您的实例启动时,状态列将显示 Not yet in service。该实例启动后,状态会变为 Successful。您还可以使用刷新按钮来查看您的实例的当前状态。

  4. Instance management(实例管理)选项卡上的 Instances(实例)下,您可以查看实例的状态。

  5. 验证您的实例已成功启动。启动实例只需很短的时间。

    • Lifecycle(生命周期)列显示您的实例的状态。最初,您的实例处于 Pending 状态。在实例准备好接收流量时,其状态为 InService

    • 运行状况列显示对您的实例进行 Amazon EC2 Auto Scaling 运行状况检查的结果。

步骤 4:终止 Auto Scaling 组中的实例

使用这些步骤了解有关 Amazon EC2 Auto Scaling 工作原理的更多信息,特别是如何在必要时启动新实例。您在本教程中创建的 Auto Scaling 组的最小大小为一个实例。因此,如果您终止正在运行的实例,Amazon EC2 Auto Scaling 必须启动一个新实例以替换该实例。

  1. 打开 Amazon EC2 控制台中的 自动扩缩组页面

  2. 选中您的自动扩缩组旁边的复选框。

  3. Instance management(实例管理)选项卡上的 Instances(实例)下,选择实例的 ID。

    这时您将会跳转到 Amazon EC2 控制台中的 Instances(实例)页面,您可在其中终止实例。

  4. 依次选择 Actions(操作)、Instance State(实例状态)和 Terminate(终止)。当系统提示您确认时,选择 Yes, Terminate(是,终止)。

  5. 在导航窗格的 Auto Scaling 下,选择 自动扩缩组。选择您的 Auto Scaling 组,然后选择 Activity(活动)选项卡。

    当您从 “实例” 页面终止实例时,在终止该实例后需要一两分钟的时间才能启动新实例。在活动历史记录中,当扩展活动启动时,将会看到有关终止第一个实例的条目以及有关启动新实例的条目。使用刷新按钮直到看到新条目。

  6. Instance management(实例管理)选项卡上,Instances(实例)部分仅显示新实例。

  7. 在导航窗格上的 Instances(实例)下,选择 Instances(实例)。此页面同时显示已终止的实例和新的正在运行的实例。

步骤 5:后续步骤

如果您想删除刚刚创建的基本基础架构,请转到下一步。否则,您可以将该基础设施作为基础,然后尝试以下一个或多个操作:

您也可以通过阅读关于 目标跟踪扩展策略 的内容开始熟悉自动扩缩概念。如果应用程序的负载发生变化,自动扩缩组可以通过在最小和最大容量限制之间调整组的所需容量来自动横向扩展(添加实例)和横向缩减(运行更少的实例)。有关这些限制的更多信息,请参阅 为自动扩缩组设置扩缩限制

步骤 6:清理

您可以删除您的扩展基础架构,也可以仅删除您的 Auto Scaling 组并保留启动模板以备日后使用。

如果您启动的实例不在 Amazon 免费套餐范围内,则应终止实例以避免产生额外费用。当您终止实例时,与其关联的数据也将被删除。

删除 Auto Scaling 组
  1. 打开 Amazon EC2 控制台中的 自动扩缩组页面

  2. 选中您的自动扩缩组 (my-first-asg) 旁边的复选框。

  3. 选择 Delete (删除)

  4. 当系统提示进行确认时,键入 delete 以确认删除指定自动扩缩组,然后选择 Delete(删除)。

    名称列中的加载图标指示 Auto Scaling 组正在被删除。发生删除时,Desired(所需)、Min(最小)和 Max(最大)列显示 Auto Scaling 组具有 0 个实例。终止实例并删除组需要几分钟时间。刷新列表以查看当前状态。

如果要保留启动模板,请跳过以下过程。

删除启动模板
  1. 打开 Amazon EC2 控制台的启动模板页面

  2. 选择您的启动模板 (my-template-for-auto-scaling)。

  3. 选择 Actions(操作),然后选择 Delete template(删除模板)。

  4. 当系统提示进行确认时,键入 Delete 以确认删除指定启动模板,然后选择 Delete(删除)。