我以前使用单个实例设置 AWS Classic Load Balancer ,该实例为我的节点应用提供服务。但是,我正在尝试向LB添加自动缩放,以便在需求较高时,LB将在1个或更多实例之间分配流量。
我已经尝试按照文档执行此操作here,但是当我在控制台中查看Autoscaling Group时,似乎没有实例正在运行(附带屏幕截图)但是,当我在控制台中查看LB时,我看到一个健康的实例正在服务(截图附件)。我的应用程序确实可以通过LB网址访问。
设置我的Autoscaling Group时,我确保将我的load Balancer添加到INDEX(B:D;MATCH(TRUE;INDEX(B:D;MATCH(F1;A:A;0);0)>=F2;0))
属性。
如何找出不连续性的位置?为什么AWS在我的LB控制台中显示健康的运行实例,但我的Autoscaling组控制台显示Load Balancer
实例数?
答案 0 :(得分:2)
将Auto Scaling组与Elastic Load Balancer关联时,实例由Auto Scaling组管理,而不是相反。
因此Auto Scaling Group将创建EC2实例,然后自动将它们与Elastic Load Balancer关联。
Auto Scaling组无法“吸收”未由该组创建的EC2实例。因此,对于预先存在的EC2实例,您有两个选项:
至于这张图片:
“实例”列下的“0”表示Auto Scaling组在其控制下没有任何EC2实例。但是,它旁边的(!)图标意味着这个事实可能正在发生变化。如果你将鼠标悬停在它上面,它应该告诉你新的EC2实例可能正在启动等等。
接下来,使用t2.micro实例进行Auto Scaling需要时间。我不知道拍摄这些截图的时间跨度,以及您的期望是什么,但很多时候可能需要30分钟才能让t2.micro在ELB后面变得活跃。
最后,请执行以下操作:
监控Auto Scaling组。它应该最终在“Instances”列下说“1”。这意味着它基于您的启动配置启动了1个新的EC2实例。如果没有发生这种情况,请查看Auto Scaling Group的事件和历史记录,找出原因。
只有当ASG说“1”时,您才能看到ELB。然后它应该有2个EC2实例(1个原始,1个来自ASG)。如果没有,那么您可以查看ASG配置以确保它使用您的ELB注册EC2实例。
选择离开原始EC2实例或终止它。但它永远不会落在你的ASG的控制之下。无论如何,只要ELB存在并在ELB注册,它将继续提供ELB的请求。