关于在 Amazon EC2 上配置 ES, ec2 上有一个很棒的教程elasticsearch 。我研究了它并应用了所有建议。
现在我有了 AMI,可以从这个 AMI 运行集群中的任意数量的节点。配置了自动发现,并且节点按照它们真正应该的方式加入集群。
问题是如何配置集群,以便我可以根据集群负载自动启动/终止节点?
例如,我希望在没有任何负载时仅运行 1 个节点,而在峰值负载时运行 12 个节点。但是等等,如果我终止集群中的 11 个节点,分片和副本会发生什么?如果我终止 12 个节点中的 11 个节点,如何确保不会丢失集群中的任何数据?
我可能想为此配置S3 网关。但是除本地之外的所有网关都已弃用。
手册中有一篇关于分片分配的文章。可能是我遗漏了一些非常基本的东西,但我应该承认我未能弄清楚是否可以将一个节点配置为始终保存所有分片副本。我的目标是确保如果这是集群中唯一运行的节点,我们仍然不会丢失任何数据。
我现在能想到的唯一解决方案是将索引配置为具有 12 个分片和 12 个副本。然后,当启动多达 12 个节点时,每个节点都会拥有每个分片的副本。但我不喜欢这种解决方案,因为如果我可能希望在峰值负载下拥有超过 12 个节点,我将不得不重新配置集群。