

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

# 教程：创建您的第一个自动扩缩组
<a name="create-your-first-auto-scaling-group"></a>

本教程通过以下方式亲身体验了 Amazon EC2 Auto Scaling AWS 管理控制台。您将创建一个定义 EC2 实例的启动模板以及一个包含单个实例的自动扩缩组。启动自动扩缩组后，您将终止该实例并验证实例是否已从服务中删除并被替换。为了保持恒定数量的实例，Amazon EC2 Auto Scaling 会自动检测并响应 Amazon EC2 运行状况和可到达性检查。

注册后 AWS，您可以使用免费[套餐AWS 免费](https://aws.amazon.com/free/)开始使用 Amazon EC2 Auto Scaling。您可以使用免费套餐在 12 个月内免费启动和使用 `t2.micro` 实例（在 `t2.micro` 不可用的区域，您可以使用免费套餐下的 `t3.micro` 实例）。如果您启动不在免费套餐范围内的实例，则需要为该实例支付标准 Amazon EC2 使用费。有关更多信息，请参阅[Amazon EC2定价](https://aws.amazon.com/ec2/pricing/)。

**Topics**
+ [准备演练](#gs-preparing-for-walkthrough)
+ [步骤 1：创建启动模板](#gs-create-lt)
+ [步骤 2：创建单个实例 Auto Scaling 组](#gs-create-asg)
+ [步骤 3：验证您的 Auto Scaling 组](#gs-verify-asg)
+ [步骤 4：终止 Auto Scaling 组中的实例](#gs-asg-terminate-instance)
+ [步骤 5：后续步骤](#gs-tutorial-next-steps)
+ [步骤 6：清除](#gs-delete-asg)

## 准备演练
<a name="gs-preparing-for-walkthrough"></a>

本演练假定您熟悉 EC2 实例的启动并已创建密钥对和安全组。

要开始使用 Amazon EC2 Auto Scaling，您可以使用 AWS 账户的*默认* VPC。默认 VPC 在各个可用区中包含一个默认公有子网，以及连接到您 VPC 的 Internet 网关。您可以在亚马逊 Virtual Priv [ate Cloud（亚马逊 VPC）控制台的 “我的 VPCs页面” VPCs ](https://console.aws.amazon.com/vpc/home?/#vpcs) 上查看。

## 步骤 1：创建启动模板
<a name="gs-create-lt"></a>

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

**创建启动模板**

1. 打开 Amazon EC2 控制台并转到[启动模板页面](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates)。

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

1. 选择**Create launch template**（创建启动模板）。

1. 对于 **Launch template name**（启动模板名称），输入 **my-template-for-auto-scaling**。

1. 在 **Auto Scaling guidance**（Auto Scaling 指导）下，选中复选框。

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

1. 对于 **Instance type**（实例类型），选择与您指定的 AMI 兼容的硬件配置。

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

1. 对于 **Network settings**（网络设置），展开 **Advanced network configuration**（高级网络配置），然后执行以下操作：

   1. 选择 **Add network interface**（添加网络接口）以配置主网络接口。

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

   1. 对于**安全组 ID**，在计划用作自动扩缩组 VPC 的同一 VPC 中选择安全组。如果您没有指定安全组，实例会自动与 VPC 的默认安全组关联。

   1. 对于**终止时删除**：选择**是**以在删除实例时删除网络接口。

1. 选择**Create launch template**（创建启动模板）。

1. 在确认页面上，选择 **Create Auto Scaling group**（创建 Auto Scaling 组）。

## 步骤 2：创建单个实例 Auto Scaling 组
<a name="gs-create-asg"></a>

创建启动模板后，使用以下步骤从中断的地方继续操作。

**创建 自动扩缩组**

1. 在**选择启动模板或配置**页面上，对于 **Auto Scaling 组名称**，输入 **my-first-asg**。

1. 选择**下一步**。

   此时将显示**选择实例启动选项**页面，以便选择您希望自动扩缩组使用的 VPC 网络设置，并提供启动按需型实例和竞价型实例的选项。

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

1. 对于 **Availability Zones and subnets**（可用区和子网），请从您希望包含的每个可用区中选择一个子网。可以在多个可用区中使用子网以提供高可用性。有关更多信息，请参阅 [选择 VPC 子网时的注意事项](asg-in-vpc.md#as-vpc-considerations)。

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

1. 保留本教程的其余默认值，然后选择 **Skip to review**（跳到审核）。
**注意**  
组的初始规模由其所需容量决定。默认值为 `1` 实例。

1. 在 **Review**（审核）页面上，查看组的信息，然后选择 **Create Auto Scaling group**（创建 Auto Scaling 组）。

## 步骤 3：验证您的 Auto Scaling 组
<a name="gs-verify-asg"></a>

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

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

**验证 Auto Scaling 组已启动 EC2 实例**

1. 打开 Amazon EC2 控制台中的 [自动扩缩组页面](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups)。

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

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

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

1. 在 **Instance management**（实例管理）选项卡上的 **Instances**（实例）下，您可以查看实例的状态。

1. 验证您的实例已成功启动。启动实例只需很短的时间。
   + **Lifecycle**（生命周期）列显示您的实例的状态。最初，您的实例处于 `Pending` 状态。在实例准备好接收流量时，其状态为 `InService`。
   + **运行状况**列显示对您的实例执行 Amazon EC2 Auto Scaling 运行状况检查的结果。

## 步骤 4：终止 Auto Scaling 组中的实例
<a name="gs-asg-terminate-instance"></a>

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

1. 打开 Amazon EC2 控制台中的 [自动扩缩组页面](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups)。

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

1. 在 **Instance management**（实例管理）选项卡上的 **Instances**（实例）下，选择实例的 ID。

   这时您将会跳转到 Amazon EC2 控制台中的 **Instances**（实例）页面，您可在其中终止实例。

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

1. 在导航窗格的 **Auto Scaling** 下，选择 **自动扩缩组**。选择您的 Auto Scaling 组，然后选择 **Activity**（活动）选项卡。

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

1. 在 **Instance management**（实例管理）选项卡上，**Instances**（实例）部分仅显示新实例。

1. 在导航窗格上的 **Instances**（实例）下，选择 **Instances**（实例）。此页面同时显示已终止的实例和新的正在运行的实例。

## 步骤 5：后续步骤
<a name="gs-tutorial-next-steps"></a>

如果要删除您刚刚创建的基本基础设施，请转到下一步。否则，您可以将该基础设施作为基础，然后尝试以下一个或多个操作：
+ 使用会话管理器或 SSH 连接到 Linux 实例。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[使用会话管理器连接到您的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-with-systems-manager-session-manager.html)和[使用 SSH 连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。
+ 配置 Amazon SNS 通知，以便在您的自动扩缩组启动或终止实例时收到通知。有关更多信息，请参阅 [Amazon SNS 通知选项](ec2-auto-scaling-sns-notifications.md)。
+ 手动扩展您的自动扩缩组以测试 SNS 通知。有关更多信息，请参阅 [更改您自动扩缩组的所需容量](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)。

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

## 步骤 6：清除
<a name="gs-delete-asg"></a>

您可以删除扩缩基础设施，或者仅删除自动扩缩组而保留启动模板以供将来使用。

如果您启动的实例不在 [AWS 免费套餐](https://aws.amazon.com/free/)范围内，则应终止实例以避免产生额外费用。当您终止实例时，与其关联的数据也将被删除。

**删除 Auto Scaling 组**

1. 打开 Amazon EC2 控制台中的 [自动扩缩组页面](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups)。

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

1. 选择**删除**。

1. 当系统提示进行确认时，键入 **delete** 以确认删除指定自动扩缩组，然后选择 **Delete**（删除）。

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

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

**删除启动模板**

1. 打开 Amazon EC2 控制台的[启动模板页面](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates)。

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

1. 选择 **Actions**（操作），然后选择 **Delete template**（删除模板）。

1. 当系统提示进行确认时，键入 **Delete** 以确认删除指定启动模板，然后选择 **Delete**（删除）。