适用于Websocket应用程序的更好的AWS自动扩展和负载平衡策略

Vov*_*sov 5 amazon load-balancing amazon-web-services websocket autoscaling

我们正在构建在亚马逊上运行的可扩展Websocket云服务。我正在寻找更好的自动缩放和负载平衡策略,以用于我们的websocket API实例。

当前,我们的自动缩放策略仅基于CPU使用率,例如“当平均CPU> 80%时-启动更多实例,当CPU <30%时-冷却”,但我觉得这还不够。由于websocket连接是长期存在的,因此增加容量显然不会帮助已经超载的当前实例。理想情况下,除了要自动调整CPU使用率外,我还希望有一些指标,例如“ TCP连接的平均数量”,以及将连接从过载实例转移到新实例的能力。通过“传输连接”,我并不是要保留任何状态,而只是将某些状态放到过载的实例中,并允许客户端为新实例建立新的状态,即在所有节点之间平均分配连接。

任何人都可以分享经验或建议一些有关最佳实践的好阅读,以便在AWS内运行可伸缩Websocket应用程序吗?