教程:设置具有扩展和负载均衡功能的应用程序 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:设置具有扩展和负载均衡功能的应用程序

重要

在开始学习本教程之前,我们建议您首先阅读以下介绍性教程:Amazon EC2 Auto Scaling 入手

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

在本教程中,我们介绍了在创建 Auto Scaling 组时设置负载均衡器的应用程序的基本步骤。完成后,您的体系结构应类似于下图:


      具有 Application Load Balancer 的 Auto Scaling 组。

Elastic Load Balancing 支持三类负载均衡器。建议您在本教程中使用应用程序负载均衡器。

有关在架构中引入负载均衡器的详细信息,请参阅Elastic Load Balancing 和 Amazon EC2 Auto Scaling.

Prerequisites

  • 负载均衡器和目标组。确保为计划用于 Auto Scaling 组的负载均衡器选择了相同的可用区。有关更多信息,请参阅 。Elastic Load Balancing 入门中的Elastic Load Balancing 用户指南.

  • 启动模板或启动配置的安全组。安全组必须允许从侦听器端口(通常为 HTTP 流量的端口 80)和希望 Elastic Load Balancing 用于运行状况检查的端口上的负载均衡器进行访问。有关更多信息,请参阅相应文档:

    或者,如果您的实例将拥有公有 IP 地址,您可以允许 SSH 流量连接到这些实例。

  • (可选)一个 IAM 角色,它向应用程序授予对Amazon.

  • (可选)一个 Amazon EC2 实例的源 AMI 板,该映像已定义为 Amazon EC2 实例的源模板。要立即创建一个上述项,请启动一个实例。将 IAM 角色(如果已创建)和所需的任何配置脚本指定为用户数据。连接到实例并对其进行自定义。例如,您可以安装软件和应用程序、复制数据并附加其他 EBS 卷。测试您的实例上的应用程序以确保其配置正确。将此更新的配置另存为自定义 AMI。如果您以后不需要该实例,可以终止该实例。从该新自定义 AMI 启动的实例包括您在创建 AMI 时设置的自定义项。

  • Virtual Private Cloud (VPC)。本教程引用默认 VPC,但您可以使用自己的 VPC。如果使用您自己的 VPC,请确保它具有映射到您工作时所在区域的每个可用区的子网。您至少必须有两个可用于创建负载均衡器的公有子网。您还必须具有两个私有子网或两个公有子网,才能创建 Auto Scaling 组并将其注册到负载均衡器。

请注意,以下所有过程都适用于新控制台。

第 1 步:设置启动模板或启动配置

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

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

注意

或者,您可以使用启动配置而不是启动模板。有关启动配置说明,请参阅选择或创建启动配置

选择现有启动模板

  1. 打开启动模板页面Amazon EC2 控制台的数据库。

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

  3. 选择启动模板。

  4. 选择操作Create Auto Scaling 组.

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

创建启动模板

  1. 打开启动模板页面Amazon EC2 控制台的数据库。

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

  3. 选择创建启动模板

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

  5. 适用于Amazon 系统映像 (AMI)中,输入您的实例的 AMI ID 作为搜索条件。

  6. 对于实例类型,选择与您指定的 AMI 兼容的实例硬件配置。

  7. (可选)用于密钥对(登录)中,选择连接到您的实例时要使用的 key pair。

  8. 对于网络接口,执行以下操作:

    1. 选择添加网络接口。对于本教程,使用该选项指定网络接口。

    2. (可选)对于 Auto-assign public IP (自动分配公有 IP),请保留默认值 Don't include in launch template (不包含在启动模板中)。创建 Auto Scaling 组时,您可以使用已启用公有 IP 寻址属性的子网(如默认 VPC 中的默认子网)为 Auto Scaling 组中的实例分配公有 IP 地址。或者,如果不需要连接到您的实例,可以选择禁用以防止组中的实例直接从互联网接收流量。在这种情况下,它们将仅从负载均衡器接收流量。

    3. 适用于安全组 ID中,从与负载均衡器相同的 VPC 中为您的实例指定一个安全组。

    4. 适用于终止时删除中,选择. 这将在 Auto Scaling 组缩减时删除网络接口,并终止网络接口附加到的实例。

  9. (可选)要将凭证安全地分配到实例,对于高级详细信息IAM 实例配置文件,输入 IAM 角色的 Amazon 资源名称 (ARN)。

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

  11. 选择创建启动模板

  12. 在确认页面上,选择Create Auto Scaling 组.

选择或创建启动配置

如果您已拥有要使用的启动配置,请使用以下过程选择该启动配置。

选择现有的启动配置

  1. 打开启动配置页面Amazon EC2 控制台的数据库。

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

  3. 选择启动配置。

  4. 选择操作Create Auto Scaling 组.

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

创建启动配置

  1. 打开启动配置页面Amazon EC2 控制台的数据库。

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

  3. 选择创建启动配置,然后为您的启动配置输入名称。

  4. 适用于Amazon 系统映像 (AMI)中,输入您的实例的 AMI ID 作为搜索条件。

  5. 适用于实例类型中,为您的实例选择硬件配置。

  6. UNER其他配置,请注意以下字段:

    1. (可选)要安全地将凭证分配给您的 EC2 实例,请对于IAM 实例配置文件,请选择您的 IAM 角色。有关更多信息,请参阅Amazon EC2 实例上运行的应用程序的 IAM 角色

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

    3. (可选)用于高级详细信息IP 地址类型,请保留默认值。创建 Auto Scaling 组时,您可以使用已启用公有 IP 寻址属性的子网(如默认 VPC 中的默认子网)为 Auto Scaling 组中的实例分配公有 IP 地址。或者,如果不需要连接到您的实例,可以选择请勿向任何实例分配公有 IP 地址以防止组中的实例直接从互联网接收流量。在这种情况下,它们将仅从负载均衡器接收流量。

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

  8. 适用于密钥对(登录)中,选择密钥对选项.

    如果您已配置 Amazon EC2 实例 key pair,则可在此处选择该密钥对。

    如果您尚不拥有 Amazon EC2 实例 key pair,请选择创建新 key pair并为其提供一个可识别的名称。选择下载 key pair以将 key pair 下载到计算机上。

    重要

    如果您需要连接到您的实例,请不要选择在没有 key pair 的情况下继续.

  9. 选中确认复选框,然后选择 Create launch configuration

  10. 选中新启动配置的名称旁边的复选框并选择操作Create Auto Scaling 组.

第 2 步:创建 Auto Scaling 组

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

创建 Auto Scaling 组的步骤

  1. 在存储库的选择启动模板或配置页面, 适用于Auto Scaling 组名称中,为 Auto Scaling 组输入一个名称。

  2. [仅限启动模板] 对于启动模板中,选择 Auto Scaling 组在横向扩展时使用启动模板的默认版本、最新版本还是特定版本。

  3. 选择 Next (下一步)

    在存储库的配置设置页面上,您可以配置网络设置并选择跨多个实例类型的按需实例和 Spot 实例进行多样化(如果您选择了启动模板)。

  4. [仅启动模板] 将 Purchase options and instance types (购买选项和实例类型) 设置为 Adhere to the launch template (遵循启动模板) 以使用在启动模板中指定的 EC2 实例类型和购买选项。

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

  6. 对于子网,根据负载均衡器所在的可用区从要包含的每个可用区中选择一个或多个子网。

  7. 选择 Next (下一步)

  8. 在存储库的配置高级选项页面,在负载均衡中,选择连接到现有负载均衡器.

  9. 选择从负载均衡器目标组中进行选择,然后为您创建的负载均衡器选择目标组。

  10. (可选)要使用 Elastic Load Balancing 运行状况检查,请针对运行状况检查中,选择ELBUNER运行状况检查类型.

  11. 完成 Auto Scaling 组的配置后,选择跳至查看.

  12. 在存储库的审核页面上,查看 Auto Scaling 组的详细信息。您可以选择 Edit 进行更改。完成后,选择Create Auto Scaling 组.

创建附加了负载均衡器的 Auto Scaling 组后,负载均衡器会在新实例联机时自动注册这些实例。此时,您只有一个实例,因此要注册的内容并不多。不过,您可以通过更新组的所需容量来添加其他实例。如需分步指导,请参阅 手动扩展

第 3 步:验证是否已附加您的负载均衡器

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

  1. Auto Scaling 组页面,选中 Auto Scaling 组旁边的复选框。

  2. 在存储库的详细信息选项卡负载均衡显示了任何附加的负载均衡器的目标组或 Classic Load Balancer。

  3. 在存储库的活动选项卡, 在活动历史记录,您可以验证您的实例是否已成功启动。这些区域有:状态列显示您的 Auto Scaling 组是否已成功启动了实例。如果您的实例无法启动,您可以在Amazon EC2 Auto Scaling.

  4. 在存储库的实例管理选项卡,在实例,您可以验证您的实例是否已准备好接收流量。最初,您的实例处于 Pending 状态。在实例准备好接收流量时,其状态为 InService。这些区域有:运行状况列显示了对您的实例执行 Amazon EC2 Auto Scaling 运行状况检查的结果。尽管实例可能标记为运行状况良好,但负载均衡器只会向通过负载均衡器运行状况检查的实例发送流量。

  5. 验证您已向负载均衡器注册您的实例。打开“目标组” 页面Amazon EC2 控制台的数据库。选择您的目标组,然后选择 Targets (目标) 选项卡。如果实例状态为initial,这可能是因为他们仍在注册过程中,或者他们仍在进行运行状况检查。当实例状态为 healthy 时,即可供使用。

第 4 步:后续步骤

现在您已完成本教程,您可以了解更多信息:

  • 您可以将 Auto Scaling 组配置为使用 Elastic Load Balancing 运行状况检查。如果您启用负载均衡器运行状况检查,并且一个实例未通过运行状况检查,Auto Scaling 组即认为该实例运行状况不正常并进行替换。有关更多信息,请参阅添加 ELB 运行状况检查

  • 可以将应用程序扩展到同一区域中的其他可用区,来提高服务中断时的容错能力。有关更多信息,请参阅添加可用区

  • 您可以将 Auto Scaling 组配置为使用目标跟踪扩展策略。当对您的实例需求变化时,这会自动增加或减少实例数量。这将允许该组处理应用程序接收的流量的变化。有关更多信息,请参阅目标跟踪扩展策略

第 5 步:清除

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

删除 Auto Scaling 组

  1. 打开Auto Scaling 组页面Amazon EC2 控制台中的数据库。

  2. 选择 Auto Scaling 组。

  3. 选择 Delete。当系统提示进行确认时,选择 Delete (删除)

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

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

删除启动模板

  1. 打开启动模板页面Amazon EC2 控制台的数据库。

  2. 选择启动模板。

  3. 选择操作,然后选择删除模板。在提示确认时,选择删除启动模板

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

删除启动配置

  1. 打开启动配置页面Amazon EC2 控制台的数据库。

  2. 选择启动配置。

  3. 依次选择 ActionsDelete launch configuration。当系统提示进行确认时,选择 Yes, Delete

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

删除您的负载均衡器

  1. 打开负载均衡器页面Amazon EC2 控制台的数据库。

  2. 选择负载均衡器,然后依次选择操作删除

  3. 当系统提示进行确认时,选择 Yes, Delete

删除目标组

  1. 打开“目标组” 页面Amazon EC2 控制台的数据库。

  2. 选择目标组,然后依次选择操作删除

  3. 当系统提示您确认时,选择 Yes