当弹性负载均衡器(ELB)与自动扩展组相关联时,可以指定一个宽限期,在此期间,即使EC2实例被ELB标记为不健康,也不会终止新的EC2实例。是否可以指定类似的宽限期,在此期间,即使运行任务的ECS实例已被ELB标记为不健康,其关联的ECS服务也不会杀死和重新启动新的ECS任务?
更新:
在我们当前的用例中,作为ECS任务运行的docker容器包含一个在启动时加载多个缓存的JBoss实例。这些缓存可能需要几分钟才能加载完成。但是,ECS服务在容器启动后立即将容器实例注册到ELB中。这意味着流量可以在容器准备好接受之前路由到新的容器。我们可以增加ELB上的健康检查间隔和“健康/不健康阈值”,以防止ELB将流量路由到实例并且ECS服务在缓存加载完成之前重启容器。但是,增加健康检查间隔和阈值是不可取的,因为如果实例在缓存加载完成后被标记为不健康,ECS服务应尽快重新启动容器(这需要更短的健康检查间隔和更小的阈值)。
因此,是否可以应用宽限期,在此期间,ELB不会将流量路由到新容器,ECS服务也不会重启容器(即使未通过健康检查)?如果无法实现这一点,是否有关于我们用例的解决方案建议?
更新:
在我们当前的用例中,作为ECS任务运行的docker容器包含一个在启动时加载多个缓存的JBoss实例。这些缓存可能需要几分钟才能加载完成。但是,ECS服务在容器启动后立即将容器实例注册到ELB中。这意味着流量可以在容器准备好接受之前路由到新的容器。我们可以增加ELB上的健康检查间隔和“健康/不健康阈值”,以防止ELB将流量路由到实例并且ECS服务在缓存加载完成之前重启容器。但是,增加健康检查间隔和阈值是不可取的,因为如果实例在缓存加载完成后被标记为不健康,ECS服务应尽快重新启动容器(这需要更短的健康检查间隔和更小的阈值)。
因此,是否可以应用宽限期,在此期间,ELB不会将流量路由到新容器,ECS服务也不会重启容器(即使未通过健康检查)?如果无法实现这一点,是否有关于我们用例的解决方案建议?