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 支持三种类型的负载均衡器:应用程序负载均衡器、网络负载均衡器和 传统负载均衡器。您可以将这些负载均衡器连接到您的 Auto Scaling 组。有关更多信息,请参阅 Elastic Load Balancing 用户指南

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

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

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

创建或选择启动配置

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

选择现有的启动配置

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

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

  3. 在导航窗格上的 Auto Scaling 下,选择 Launch Configurations

  4. 选择一个启动配置。

  5. 选择 Create Auto Scaling group

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

创建启动配置

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

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

  3. 在导航窗格上的 Auto Scaling 下,选择 Launch Configurations。如果您没有任何 Auto Scaling 资源,则会看到一个欢迎页面;选择 Create Auto Scaling group

  4. 选择 Create launch configuration

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

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

  7. 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

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

  9. Review 页上选择 Create launch configuration

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

    警告

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

  11. Launch configuration creation status 页面将显示您最近创建的启动配置的状态。选择 Create an Auto Scaling group using this launch configuration

创建 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 DetailsHealth 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 组

  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 命令:

Copy
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 组:

Copy
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 组。

Copy
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