【问题标题】:Adding an LB to an AWS Autoscaling Group将 LB 添加到 AWS Autoscaling 组
【发布时间】:2017-09-21 07:15:36
【问题描述】:

我之前设置了一个 AWS Classic Load Balancer,其中包含为我的节点应用程序提供服务的单个实例。但是,我正在尝试将自动缩放添加到 LB,以便在需求量大时,LB 将在 1 个或多个实例之间分配流量。

我已尝试按照文档执行此操作here,但是当我在控制台中查看自动缩放组时,似乎没有任何实例正在运行(附截图)然而,当我在控制台中查看 LB 时,我看到正在服务的健康实例(附截图)。我的应用确实可以通过 LB url 访问。

在设置我的自动缩放组时,我已确保将负载均衡器添加到 Load Balancer 属性。

我如何找出不连续的位置?为什么 AWS 在我的 LB 控制台中显示正常运行的实例,但我的 Autoscaling 组控制台显示0 实例计数?

(负载平衡器控制台)

(启动配置控制台)

(自动缩放组控制台)

【问题讨论】:

  • 再次检查:1. ELB中的InService实例是由ASG创建的? 2. ASG 中零实例旁边的信息图标是什么意思?
  • InService 实例是在创建 ASG 之前创建的。那会有什么不同吗?
  • 是的...考虑一下:您有一个在 ELB 上手动创建的实例,它工作正常...但是该实例永远不会显示在 ASG 中,因为很好, 不是它的一部分
  • 是的,如果你想让实例显示在 ASG 中,它应该由它创建:)
  • 反过来看:你没有在ELB中创建一个实例来注册到ASG中……而是ASG创建了一个实例,它会自动注册到ELB中.

标签: amazon-web-services load-balancing autoscaling


【解决方案1】:

当您将 Auto Scaling 组与 Elastic Load Balancer 关联时,实例由 Auto Scaling 组管理,而不是相反。

因此 Auto Scaling 组将创建 EC2 实例,然后自动将它们与 Elastic Load Balancer 关联。

Auto Scaling 组无法“吸收”不是由该组创建的 EC2 实例。因此,对于现有的 EC2 实例,您有 2 个选项:

  1. 继续允许它存在于“自动伸缩组之外”。它仍将作为 Elastic Load Balancer 的目标,但 Auto Scaling 组永远不会“拥有”它。
  2. 终止旧的 EC2 实例,让 Auto Scaling Group 管理 ELB 后面的所有 EC2 实例。

至于这张图片:

“Instances”列下的“0”表示 Auto Scaling 组没有任何 EC2 实例在其控制之下。但是,它旁边的那个(!)图标意味着这个事实可能正在改变。如果您将鼠标悬停在它上面,它应该会告诉您新的 EC2 实例可能正在启动,等等。

接下来,使用 t2.micro 实例进行 Auto Scaling 需要时间。我不知道截取这些屏幕截图的时间跨度以及您的预期,但很多时候 t2.micro 可能需要 30 分钟才能在 ELB 后面激活。

最后,执行以下操作:

  1. 监控您的 Auto Scaling 组。它最终应该在“实例”列下显示“1”。这意味着它根据您的启动配置启动了 1 个新的 EC2 实例。如果这没有发生,请查看 Auto Scaling 组的事件和历史以找出原因。

  2. 只有在 ASG 显示“1”后,您才能查看 ELB。然后它后面应该有 2 个 EC2 实例(1 个原始实例,1 个来自 ASG)。如果没有,那么您可以查看 ASG 配置以确保它正在向您的 ELB 注册 EC2 实例。

  3. 选择保留原始 EC2 实例或终止它。但它永远不会落入您的 ASG 的控制之下。无论如何,只要它存在并在您的 ELB 中注册,它将继续为您的 ELB 请求提供服务。

猜你喜欢
  • 1970-01-01
  • 2019-06-25
  • 2019-11-17
  • 2021-05-08
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
相关资源
最近更新 更多