

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

# Amazon EC2 Auto Scaling 入门
<a name="get-started-with-ec2-auto-scaling"></a>

要开始使用 Amazon EC2 Auto Scaling，您可以按照介绍该服务的教程进行操作。

**Topics**
+ [教程：创建您的第一个自动扩缩组](create-your-first-auto-scaling-group.md)
+ [教程：设置具有扩展和负载均衡功能的应用程序](tutorial-ec2-auto-scaling-load-balancer.md)

有关重点介绍管理自动扩缩组中实例生命周期的特定工具的其他教程，请参阅以下主题：
+ [教程：配置调用 Lambda 函数的生命周期钩子](tutorial-lifecycle-hook-lambda.md)。 本教程向您展示如何使用 Amazon EventBridge 创建规则，这些规则可根据发生在您的 Auto Scaling 组中的实例的事件来调用 Lambda 函数。
+ [教程：使用数据脚本和实例元数据检索生命周期状态](tutorial-lifecycle-hook-instance-metadata.md). 本教程演示如何使用实例元数据服务 (IMDS) 从实例本身内部调用操作。

在创建用于应用程序的自动扩缩组之前，请全面检查应用程序在 AWS 云中运行时的情况。请考虑以下事项：
+ Auto Scaling 组应跨多少个可用区。
+ 可以使用哪些现有资源，例如安全组或 Amazon 系统映像 (AMIs)。
+ 无论您是希望进行扩展以增加或减少容量，还是只希望确保始终运行特定数量的服务器，请记住，Amazon EC2 Auto Scaling 可以同时实现这两个目标。
+ 哪些指标与应用程序的性能关系最密切。
+ 启动和预置服务器需要多长时间。

您越了解您的应用程序，Auto Scaling 架构的效率就越高。

# 教程：创建您的第一个自动扩缩组
<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**（删除）。

# 教程：设置具有扩展和负载均衡功能的应用程序
<a name="tutorial-ec2-auto-scaling-load-balancer"></a>

**重要**  
在开始学习本教程之前，建议您首先阅读以下介绍性教程：[创建您的第一个自动扩缩组](create-your-first-auto-scaling-group.md)。

使用 Elastic Load Balancing 负载均衡器注册 Auto Scaling 组可帮助您设置具有负载均衡功能的应用程序。Elastic Load Balancing 与 Amazon EC2 Auto Scaling 配合使用，在运行状况良好的 Amazon EC2 实例之间分配传入流量。这将提高应用程序的可扩展性和可用性。您可以在多个可用区内启用 Elastic Load Balancing 来提高应用程序的容错能力。

在本教程中，我们介绍了在创建 Auto Scaling 组时设置负载均衡的应用程序的基本步骤。完成后，您的架构看起来应当如下图所示：

![\[具有 Application Load Balancer 的 Auto Scaling 组。\]](http://docs.aws.amazon.com/zh_cn/autoscaling/ec2/userguide/images/elb-tutorial-architecture-diagram.png)


Elastic Load Balancing 支持三类负载均衡器。我们建议您在本教程中使用 Application Load Balancer。

有关在架构中引入负载均衡器的详细信息，请参阅 [使用 Elastic Load Balancing，在自动扩缩组中分配传入的应用程序流量](autoscaling-load-balancer.md)。

**Topics**
+ [先决条件](#as-register-lbs-prerequisites)
+ [步骤 1：设置启动模板或启动配置](#as-register-lbs-create-lt-console)
+ [步骤 2：创建 Auto Scaling 组。](#as-register-lbs-create-asg-console)
+ [步骤 3：验证是否已附加您的负载均衡器](#as-register-lbs-verify-console)
+ [步骤 4：后续步骤](#as-lbs-app-next-steps)
+ [第 5 步：清理](#as-lbs-app-clean-up)
+ [相关资源](#tutorial-ec2-auto-scaling-load-balancer-related-resources)

## 先决条件
<a name="as-register-lbs-prerequisites"></a>
+ 负载均衡器和目标组。确保针对计划为 Auto Scaling 组使用的负载均衡器选择了相同的可用区。有关更多信息，请参阅 *Elastic Load Balancing 用户指南*中的 [Elastic Load Balancing 入门](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html)。
+ 启动模板或启动配置的安全组。安全组必须允许从侦听器端口（通常为 HTTP 流量的端口 80）和您希望 Elastic Load Balancing 用于运行状况检查的端口上的负载均衡器进行访问。有关更多信息，请参阅相应文档：
  + *Application Load Balancer 用户指南*中的[目标安全组](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-register-targets.html#target-security-groups)
  + 《Network Load Balancer 用户指南》**中的[目标安全组](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups)

  如果您的实例将拥有公有 IP 地址，您可以选择允许 SSH 流量连接到这些实例。
+ （可选）一个 IAM 角色，用于向您的应用程序授予访问权限 AWS。
+ （可选）Amazon Machine Image (AMI)，已定义为 Amazon EC2 实例的源模板。要立即创建一个上述项，请启动一个实例。将 IAM 角色（如果已创建）和所需的任何配置脚本指定为用户数据。连接到实例并对其进行自定义。例如，您可以安装软件和应用程序、复制数据和连接更多的 EBS 卷。测试您的实例上的应用程序以确保实例配置正确。将此更新的配置另存为自定义 AMI。如果您以后不需要该实例，您可以终止它。从该新自定义 AMI 启动的实例包括您在创建 AMI 时设置的自定义项。
+ 虚拟私有云 (VPC)。本教程引用默认 VPC，但您可以使用自己的 VPC。如果使用您自己的 VPC，请确保它拥有映射到您工作时所在区域的每个可用区的子网。您至少必须具有两个公有子网，且这些子网可用于创建负载均衡器。您还必须具有两个私有子网或两个公有子网，以创建 Auto Scaling 组并使用负载均衡器注册。

## 步骤 1：设置启动模板或启动配置
<a name="as-register-lbs-create-lt-console"></a>

对本教程使用启动模板或启动配置。

**Topics**
+ [选择或创建启动模板](#as-register-lbs-create-lt-console)
+ [创建或选择启动配置](#as-register-lbs-create-lc-console)

### 选择或创建启动模板
<a name="as-register-lbs-create-lt-console"></a>

如果您已拥有要使用的启动模板，请使用以下过程选择该启动模板。

**选择现有启动模板**

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

1. 在屏幕顶部的导航栏上，选择在其中创建了负载均衡器的区域。

1. 选择启动模板。

1. 选择 **Actions** (操作)、**Create Auto Scaling group** (创建 Auto Scaling 组)。

或者，使用下列过程创建新的启动模板。

**创建启动模板**

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

1. 在屏幕顶部的导航栏上，选择在其中创建了负载均衡器的区域。

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

1. 为启动模板的初始版本输入名称并提供描述。

1. 对于 **Application and OS Images (Amazon Machine Image)** [应用程序和操作系统镜像（Amazon Machine Image）]，选择实例 AMI 的 ID。您可以搜索所有可用的 AMI AMIs，也可以从 “最**近**” 或 “**快速入门**” 列表中选择 AMI。如果您没有看到所需的 AMI，请选择 “**浏览更多**” AMIs 以浏览完整的 AMI 目录。

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

1. （可选）对于 **Key pair (login)** (密钥对（登录）)，请输入在连接到您的实例时使用的密钥对。

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

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

   1. 对于**自动分配公有 IP**，指定您的实例是否接收公有 IPv4 地址。默认情况下，如果 EC2 实例在默认子网中启动，或者实例启动到配置为自动分配公有地址的子网，则 Amazon EC2 会分配公 IPv4 有 IPv4 地址。如果不需要连接到您的实例，可以选择**禁用**以防止组中的实例直接从互联网接收流量。在这种情况下，它们将仅从负载均衡器接收流量。

   1. 对于 **Security group ID** (安全组 ID)，从与负载均衡器相同的 VPC 中为您的实例指定一个安全组。

   1. 对于 **Delete on termination** (终止时删除)，请选择 **Yes** (是)。这将在 Auto Scaling 组缩减并终止网络接口附加到的实例时删除网络接口。

1. （可选）要将凭证安全地分配到实例，对于 **Advanced details** (高级详细信息) 和 **IAM instance profile** (IAM 实例配置文件)，输入 IAM 角色的 Amazon Resource Name (ARN)。

1. (可选) 要为实例指定用户数据或配置脚本，请将其粘贴到**高级详细信息**和**用户数据**。

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

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

### 创建或选择启动配置
<a name="as-register-lbs-create-lc-console"></a>

**注意**  
强烈建议不要在新应用程序中使用启动配置，因为这是一项没有计划投资的旧版功能。此外，2023 年 6 月 1 日及之后创建的新账户都无法选择通过控制台创建新的启动配置。有关更多信息，请参阅 [自动扩缩启动配置](launch-configurations.md)。

**选择现有的启动配置**

1. 打开 Amazon EC2 控制台的[启动配置页面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。

1. 在顶部的导航栏上，选择在其中创建了负载均衡器的区域。

1. 选择启动配置。

1. 选择**操作**、**创建 Auto Scaling 组**。

或者，要创建新的启动配置，请使用以下过程：

**创建启动配置**

1. 打开 Amazon EC2 控制台的[启动配置页面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。当提示您确认时，选择**查看启动配置**以确认您要查看**启动配置**页面。

1. 在顶部的导航栏上，选择在其中创建了负载均衡器的区域。

1. 选择**创建启动配置**，然后为您的启动配置输入名称。

1. 对于 **Amazon Machine Image (AMI)**，请输入您的实例的 AMI 的 ID 作为搜索条件。

1. 对于**实例类型**，为您的实例选择硬件配置。

1. 在**其他配置**下，请注意以下字段：

   1. （可选）为将凭证安全分配到您的 EC2 实例，请为 **IAM 实例配置文件**选择您的 IAM 角色。有关更多信息，请参阅 [在 Amazon EC2 实例上运行的应用程序的 IAM 角色](us-iam-role.md)。

   1. （可选）要为实例指定用户数据或配置脚本，请将其粘贴到**高级详细信息**和**用户数据**。

   1. （可选）对于**高级详细信息**、**IP 地址类型**，保留默认值。创建 Auto Scaling 组时，您可以使用已启用公有 IP 寻址属性的子网（如默认 VPC 中的默认子网）为 Auto Scaling 组中的实例分配公有 IP 地址。或者，如果不需要连接到您的实例，可以选择 **Do not assign a public IP address to any instances (不为任何实例分配公有 IP 地址）**以防止组中的实例直接从互联网接收流量。在这种情况下，它们将仅从负载均衡器接收流量。

1. 对于**安全组**，从与负载均衡器相同的 VPC 中选择现有安全组。如果您保留选中**创建新安全组**选项，将为运行 Linux 的 Amazon EC2 实例配置默认 SSH 规则。将为运行 Windows 的 Amazon EC2 实例配置默认 RDP 角色。

1. 对于**密钥对（登录）**，请选择**密钥对选项**下的选项。

   如果您已配置 Amazon EC2 实例密钥对，则可在此处选择它。

   如果您尚未拥有 Amazon EC2 实例密钥对，请选择**创建新密钥对**并为密钥对指定一个可识别的名称。选择**下载密钥对**以将密钥对下载到您的计算机。
**重要**  
如果需要连接到您的实例，不要选择**在没有密钥对的情况下继续**。

1. 选中确认复选框，然后选择 **Create launch configuration**（创建启动配置）。

1. 选中新启动配置名称旁边的复选框，然后选择**操作**、**创建 Auto Scaling 组**。

## 步骤 2：创建 Auto Scaling 组。
<a name="as-register-lbs-create-asg-console"></a>

创建或选择启动模板或启动配置后，使用以下过程从中断的地方继续操作。

**创建 Auto Scaling 组**

1. 在 **Choose launch template or configuration**（选择启动模板或配置）页面上，对于 **Auto Scaling group name**（Auto Scaling 组名称），输入 Auto Scaling 组的名称。

1. [仅启动模板] 对于 **Launch template**（启动模板），选择 Auto Scaling 组在扩展时使用启动模板的默认版本、最新版本还是特定版本。

1. 选择 **Next**（下一步）。

   此时将显示页面 **Choose instance launch options**（选择实例启动选项），以便选择您希望 Auto Scaling 组使用的 VPC 网络设置，并提供启动按需型实例和竞价型实例的选项（如果您选择了启动模板）。

1. 在 **Network**（网络）部分中，对于 **VPC**，选择您用于负载均衡器的 VPC。如果您选择了默认 VPC，则它会自动配置为向您的实例提供 Internet 连接。此 VPC 在区域的每个可用区中均包含一个公有子网。

1. 对于 **Availability Zones and subnets**（可用区和子网），根据负载均衡器所在的可用区从要包含的每个可用区中选择一个或多个子网。有关更多信息，请参阅 [选择 VPC 子网时的注意事项](asg-in-vpc.md#as-vpc-considerations)。

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

1. 选择 **Next**（下一步）转至 **Configure advanced options**（配置高级选项）页面。

1. 要将组连接到现有的负载均衡器，请在 **Load balancing (负载均衡)** 部分中选择 **Attach to an existing load balancer (连接到现有负载均衡器)**。您可以选择 **Choose from your load balancer target groups** (从负载均衡器目标组中进行选择) 或 **Choose from Classic Load Balancers** (从经典负载均衡器中选择)。然后，您可以为创建的 Application Load Balancer 或 Network Load Balancer 选择目标组的名称，或者选择经典负载均衡器的名称。

1. （可选）对于**运行状况检查**、**其他运行状况检查类型**，请选择**启用 Elastic Load Balancing 运行状况检查**。

1. （可选）对于**运行状况检查宽限期**，输入时间长短（以秒为单位）。此时间是 Amazon EC2 Auto Scaling 在实例进入 `InService` 状态后需要等待完成实例运行状况检查的时间。有关更多信息，请参阅 [设置自动扩缩组的运行状况检查宽限期](health-check-grace-period.md)。

1. 完成 Auto Scaling 组的配置后，选择 **Skip to review**（跳过以审核）。

1. 在 **Review**（审核）页面上，审核 Auto Scaling 组的详细信息。您可以选择 **Edit**（编辑）进行更改。在完成后，选择 **Create Auto Scaling group**（创建 Auto Scaling 组）。

在创建附加了负载均衡器的 Auto Scaling 组后，负载均衡器会在新实例联机时自动注册这些实例。此时，您只有一个实例，因此要注册的内容并不多。不过，您可以通过更新组的所需容量来添加其他实例。有关 step-by-step说明，请参阅[更改您自动扩缩组的所需容量](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)。

## 步骤 3：验证是否已附加您的负载均衡器
<a name="as-register-lbs-verify-console"></a>

**验证是否已附加您的负载均衡器**

1. 从 Amazon EC2 控制台的 [Auto Scaling groups page](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups)（Auto Scaling 组页面）中，选择 Auto Scaling 组旁边的复选框。

1. 在**详细信息**选项卡上，**负载均衡**将显示任何附加的负载均衡器目标组或经典负载均衡器。

1. 在 **Activity**（活动）选项卡上，在**Activity history**（活动历史记录）中，您可以验证您的实例是否已成功启动。**Status**（状态）列显示 Auto Scaling 组是否具有已成功启动的实例。如果您的实例无法启动，您可以在 [排查 Amazon EC2 Auto Scaling 中的问题](CHAP_Troubleshooting.md) 中找到常见实例启动问题的故障排除思路。

1. 在 **Instance management**（实例管理）选项卡上的 **Instances**（实例）下，可以验证您的实例是否准备好接收流量。最初，您的实例处于 `Pending` 状态。在实例准备好接收流量时，其状态为 `InService`。**Health status**（运行状况）列显示对您的实例执行 Amazon EC2 Auto Scaling 运行状况检查的结果。尽管实例可能标记为运行状况良好，但负载均衡器只会向通过负载均衡器运行状况检查的实例发送流量。

1. 验证您已向负载均衡器注册您的实例。打开 Amazon EC2 控制台的[目标组页面](https://console.aws.amazon.com/ec2/v2/#TargetGroups)。选择您的目标组，然后选择 **Targets**（目标）选项卡。如果实例的状态为 `initial`，这可能是因为它们仍在注册过程中，或者它们仍在进行运行状况检查。当实例状态为 `healthy` 时，即可供使用。

## 步骤 4：后续步骤
<a name="as-lbs-app-next-steps"></a>

现在您已完成本教程，您可以了解更多信息：
+ Amazon EC2 Auto Scaling 会根据您的自动扩缩组所使用的运行状况检查的状态来确定实例是否运行正常。如果您启用负载均衡器运行状况检查，并且实例未通过运行状况检查，自动扩缩组即认为该实例运行状况不正常并进行替换。有关更多信息，请参阅 [运行状况检查](ec2-auto-scaling-health-checks.md)。
+ 可以将应用程序扩展到同一区域中的其他可用区，来提高服务中断时的容错能力。有关更多信息，请参阅 [添加可用区删除可用区](as-add-az-console.md)。
+ 您可以将 Auto Scaling 组配置为使用目标跟踪扩展策略。这会在实例需求变化时自动增加或减少实例数量。这将允许该组处理应用程序接收的流量的变化。有关更多信息，请参阅 [目标跟踪扩展策略](as-scaling-target-tracking.md)。

## 第 5 步：清理
<a name="as-lbs-app-clean-up"></a>

完成为本教程创建的资源后，应考虑清除这些资源，以免产生不必要的费用。

**要删除 Auto Scaling 组**

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

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

1. 选择**删除**。

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

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

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

**删除启动模板**

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

1. 选择启动模板。

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

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

如果您要保留启动配置，请跳过以下过程。

**删除启动配置**

1. 打开 Amazon EC2 控制台的[启动配置页面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。

1. 选择启动配置。

1. 依次选择 **Actions**（删除）和 **Delete launch configuration**（删除启动配置）。

1. 当系统提示进行确认时，选择 **Delete（删除）**。

如果您要保留负载均衡器供将来使用，请跳过以下步骤。

**删除您的负载均衡器**

1. 打开 Amazon EC2 控制台的[负载均衡器页面](https://console.aws.amazon.com/ec2/v2/#LoadBalancers)。

1. 选择负载均衡器，然后依次选择 **Actions**（操作）和 **Delete**（删除）。

1. 当系统提示进行确认时，选择 **Yes, Delete**（是，删除）。

**要删除目标组**

1. 打开 Amazon EC2 控制台的[目标组页面](https://console.aws.amazon.com/ec2/v2/#TargetGroups)。

1. 选择目标组，然后依次选择 **Actions**（操作）和 **Delete**（删除）。

1. 当系统提示进行确认时，选择 **Yes, Delete**（是，删除）。

## 相关资源
<a name="tutorial-ec2-auto-scaling-load-balancer-related-resources"></a>

借 CloudFormation助，您可以使用模板文件将资源集合作为一个单元（*堆栈*）一起创建和删除，从而可预测且重复地创建和配置 AWS 基础架构部署。有关更多信息，请参阅 [AWS CloudFormation 《用户指南》](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

有关使用堆栈模板预配自动扩缩组和应用程序负载均衡器的演练，请参阅《AWS CloudFormation 用户指南》**中的[演练：创建经扩展和负载均衡的应用程序](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-autoscaling.html)。使用这些演练和示例模板作为起点来创建类似的模板以满足您的需求。