AWS 自动扩展和 ELB 使用不同的健康检查机制

AWS 自动扩展和 ELB 使用不同的健康检查机制

我需要一些有关 AWS 自动扩展、负载均衡器和健康检查的建议:

是否可以区分两种健康检查机制,一种是何时向实例发送或不发送流量(但不终止/替换它),另一种是何时终止/替换该实例。

场景:

  • 我在负载均衡器后面有两个实例,并且我使用自动缩放。我想在其中一个实例上执行一些维护任务,因此我不希望负载均衡器向其发送任何流量。但稍后我想将其恢复服务。
  • 与上文相同,两个实例位于负载均衡器后面并使用自动缩放。其中一个实例存在不可恢复的问题,因此我希望自动缩放终止它并替换为另一个实例。

提前感谢您的回答。

答案1

目前还不清楚您使用的是 EC2 还是 ECS,以及您使用的是哪种类型的 ELB,这还取决于您运行的应用程序类型。如果您想要更好的答案,请提供这些详细信息以及有关您的应用程序堆栈的一些信息。

通常,当客户端请求到达 ELB 时,它会确定在哪个实例上“路由/发送”流量(基于配置,比如说循环),当您从 ELB 中删除实例时,并不意味着当前建立的连接会自动路由到剩余的实例。您应等待或监视已删除实例上的活动连接以获取详细信息,当您看到没有任何活动连接时,请执行维护(即在升级后重新启动实例)。

关键因素之一是保存有关当前已建立会话的信息。如果每个实例都单独保存会话,“一半的登录用户将被注销”。您需要做的是将会话存储在“其他地方”,通常是在 ElastiCache 或 DB/RDS 中,这样当您删除实例会话时,会话仍保持连接(没有注销的用户)。如果您单独保存会话,当您从 ELB 中删除实例时,您几乎可以立即将其删除(但同样,这取决于您正在运行的应用程序)

AWS 文档中提供了非常好的信息:

ELB 工作原理

将 EC2 从自动扩展组中分离

暂时从自动缩放组中删除实例

在 ELB 中注册或注销实例

ELB 健康检查

相关内容