Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

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

可以将负载均衡器附加到 Auto Scaling 组。该负载均衡器在组中的所有实例间自动分配传入流量。有关结合 Auto Scaling 使用 Elastic Load Balancing 的好处,请参阅 将负载均衡器与 Auto Scaling 组结合使用

在本教程中,在创建 Auto Scaling 组时,可以向该组附加负载均衡器。要将负载均衡器附加到现有 Auto Scaling 组,请参阅将负载均衡器附加到 Auto Scaling 组

先决条件

  • (可选)创建一个 IAM 角色,该角色将为您的应用程序授予对所需 AWS 的访问权限。

  • 启动一个实例;务必指定 IAM 角色(如果已创建)并将所需的任何配置脚本指定为用户数据。连接到实例并对其进行自定义。例如,您可以安装软件和应用程序并复制数据。测试您的实例上的应用程序以确保您的实例配置正确。从您的实例创建自定义 Amazon 系统映像 (AMI)。如果您不再需要实例,可终止它。

  • 创建负载均衡器。Elastic Load Balancing 支持三种类型的负载均衡器:Application Load Balancer、Network Load Balancer 和 Classic Load Balancer。您可以将任一类型的负载均衡器附加到 Auto Scaling 组。有关更多信息,请参阅 Elastic Load Balancing 用户指南

    通过 Classic Load Balancer,实例注册到负载均衡器中。通过 Application Load Balancer 和 Network Load Balancer,实例作为一个目标注册到目标组中。当您计划将负载均衡器与 Auto Scaling 组配合使用时,无需将 EC2 实例注册到负载均衡器或目标组。在将负载均衡器或目标组附加到 Auto Scaling 组后,Auto Scaling 会在启动实例时将其注册到负载均衡器或目标组。

使用 AWS 管理控制台配置扩展和负载均衡功能

在创建您的 Auto Scaling 组时,请完成以下任务以设置具有扩展和负载均衡功能的应用程序。

创建或选择启动配置

启动配置会指定 Amazon EC2 Auto Scaling 为您创建的 EC2 实例类型。在创建启动配置时,您需要包含要使用的 Amazon 系统映像 (AMI) 的 ID、实例类型、密钥对和块储存设备映射等信息。如果创建了启动模板,您可以使用启动模板创建 Auto Scaling 组而不是使用启动配置。有关更多信息,请参阅 使用启动模板创建 Auto Scaling 组

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

选择现有的启动配置

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups (Auto Scaling 组)

  4. 在下一页上,选择 Create Auto Scaling group (创建 Auto Scaling 组)

  5. 创建 Auto Scaling 组 页面上,选择启动配置,选择现有启动配置,然后选择下一步

要创建新的启动配置,请使用下列过程:

创建启动配置

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups (Auto Scaling 组)

  4. 在下一页上,选择 Create Auto Scaling group (创建 Auto Scaling 组)

  5. 创建 Auto Scaling 组 页面上,选择启动配置、创建新启动配置,然后选择下一步

  6. Choose AMI 页面上,选择您的自定义 AMI。

  7. Choose Instance Type 页面上,选择实例的硬件配置,然后选择 Next: Configure details

  8. Configure Details (配置实例详细信息) 页面中,执行以下操作:

    1. 对于 Name,为启动配置键入一个名称。

    2. (可选)要安全地将凭证分配给您的 EC2 实例,请选择您的 IAM 角色。

    3. (可选)如果需要连接到非默认 VPC 内的实例,则对于 Advanced DetailsIP Address Type,选择 Assign a public IP address to every instance

    4. (可选)要为实例指定用户数据或配置脚本,则对于 Advanced DetailsUser data,粘贴您的配置脚本。

    5. 选择 Skip to review

  9. Review 页面上,选择 Edit security groups。按照说明操作来选择现有安全组,然后选择 Review

  10. Review 页上选择 Create launch configuration

  11. Select an existing key pair or create a new key pair 页面上,选择所列的选项之一。选中确认复选框,然后选择 Create launch configuration

    警告

    如果需要连接到您的实例,不要选择 Proceed without a key pair

按照上述说明完成操作之后,您已准备好继续使用向导来创建 Auto Scaling 组。

创建 Auto Scaling 组

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

创建 Auto Scaling 组的步骤

  1. Configure Auto Scaling group details 页面上,执行以下操作:

    1. 对于Group name (组名),键入 Auto Scaling 组的名称。

    2. 对于 Group size (组大小),键入 Auto Scaling 组的初始实例数。

    3. 如果为启动配置选择了需要 VPC 的实例类型(例如 T2 实例),则必须为 Network 选择 VPC。否则,如果您的账户支持 EC2-Classic 而且您已选择不需要 VPC 的实例类型,则可以选择 Launch into EC2-Classic 或 VPC。

    4. 如果您在上一步中选择了 VPC,请从 Subnet 中选择一个或多个子网。如果您改为选择 EC2-Classic,请从 Availability Zone(s) 中选择一个或多个可用区。

    5. 对于 Advanced Details,请选择 Receive traffic from Elastic Load Balancer(s),然后执行下列操作之一:

      • [Classic 负载均衡器] 从 Load Balancers 中选择您的负载均衡器。

      • [目标组] 从 Target Groups 中选择您的目标组。

    6. (可选)要使用 Elastic Load Balancing 运行状况检查,请为 Advanced Details (高级详细信息)Health Check Type (运行状况检查类型) 选择 ELB

    7. 选择 Next: Configure scaling policies

  2. Configure scaling policies 页面上,选择 Keep this group at its initial size,然后选择 Review

    如果您要为您的 Auto Scaling 组配置扩展策略,请参阅 创建具有目标跟踪扩展策略的 Auto Scaling 组

  3. 审核 Auto Scaling 组的详细信息。您可以选择 Edit 进行更改。完成后,选择 Create Auto Scaling group (创建 Auto Scaling 组)

(可选)验证您的负载均衡器是否已附加到您的 Auto Scaling 组

验证您的负载均衡器是否已附加到您的 Auto Scaling 组

  1. 选择您的 Auto Scaling 组。

  2. Details 选项卡上,Load Balancers 显示任何附加的负载均衡器,Target Groups 显示任何附加的目标组。

  3. Details 选项卡上,Load Balancers 任何附加的负载均衡器。

  4. Activity History (活动历史记录) 选项卡上,Status (状态) 列显示 Auto Scaling 实例的状态。实例启动时,其状态是 In progress。该实例启动后,状态会变为 Successful

  5. Instances (实例) 选项卡上,Lifecycle (生命周期) 列显示 Auto Scaling 实例的状态。在实例准备好接收流量时,其状态为 InService

    Health Status 列显示了对您的实例执行健康检查的结果。

使用 AWS CLI配置扩展和负载均衡功能

完成以下任务以设置具有扩展和负载均衡功能的应用程序。

创建启动配置

如果您已经有了要使用的启动配置,请跳过这一步。

创建启动配置的步骤

使用以下 create-launch-configuration 命令:

aws autoscaling create-launch-configuration --launch-configuration-name my-lc \ --image-id ami-514ac838 --instance-type m1.small

创建包含负载均衡器的 Auto Scaling 组

在创建 Auto Scaling 组时,您可以为该组挂载一个现有的负载均衡器。

创建带附加 传统负载均衡器 的 Auto Scaling 组

将以下 create-auto-scaling-group 命令和 --load-balancer-names 选项结合使用可创建一个带附加 传统负载均衡器 的 Auto Scaling 组:

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-lb-asg \ --launch-configuration-name my-lc \ --availability-zones "us-west-2a" "us-west-2b" \ --load-balancer-names "my-lb" \ --max-size 5 --min-size 1 --desired-capacity 2

创建带附加的目标组的 Auto Scaling 组

将以下 create-auto-scaling-group 命令和 --target-group-arns 选项结合使用可创建一个带附加的目标组的 Auto Scaling 组:

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-lb-asg \ --launch-configuration-name my-lc \ --vpc-zone-identifier "subnet-41767929" \ --vpc-zone-identifier "subnet-b7d581c0" \ --target-group-arns "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456" \ --max-size 5 --min-size 1 --desired-capacity 2