是否有可能在峰值负载下对AWS中的elasticsearch进行自动调整?

我是ElasticSearch的新手,但在生产站点上已经使用了ElasticSearch。

我在一个EC2实例中安装了ElasticSearch。 在使用ElasticSearch几个月之后,现在当前实例的CPU在高峰时间已经达到100%,并且查询变得如此缓慢。 但在非高峰期,CPU使用率只有10%。

我知道我可以使用自动缩放来旋转新的实例,如果某个实例处于某个较高的CPU使用率的情况下。 我已经在我的web服务器中使用了AWS自动扩展和Elastic Load Balancer的帮助。 但是,我可以使用ElasticSearch来做到这一点吗? 我从哪说起呢?

这在StackOverflow上得到了很好的回答

完整的答案值得一读,但这里是关键点:

  1. 移动和重新分配碎片是资源密集型的。 因此,在服务器上添加或移除可能会给系统带来负担。
  2. 您应该已经有2个ElasticSearch节点了。 它更好地执行,并保持数据更安全。
  3. 删除或添加服务器时,无法调整向上和向下碎片的数量。 这意味着,当你从2台服务器下移到1台服务器时,突然你会有很多未分配的碎片。

也就是说,我实际上已经把我的ES服务器放在了Auto-Scale之后。 但我已经设置始终保持相同数量的服务器; 只有在那里才能确保手头上有两台服务器,而不是放大或缩小。

我的build议? 设置两个t2.small或t2.micro服务器作为您的服务器而不是一个服务器。 都一直在运行。 然后,当你知道一段时间(例如一个星期左右)的stream量将会很高时,停止一台服务器,调整它的实例types(你可以在不改变服务器的任何其他方面的情况下做到这一点),然后再次启动服务器。 如果按顺序执行此操作,并确保群集返回到绿色状态,则可以升级第二台服务器,并且用户不应该有任何服务中断。

TLDR: build议ElasticSearch服务器基于负载自动扩展。 移动到一对微小的实例(位于负载平衡器后面),如果您可以预料负载,则根据需要逐个升级每个服务器。