AWS elasticsearch可用区域感知和副本

时间:2015-11-26 16:31:59

标签: amazon-web-services elasticsearch

我对AWS弹性搜索可用区域感知和副本有一些疑问:

  1. 根据我的理解,如果区域/节点发生故障,如果在节点之间复制了分片,则群集将能够完全恢复,并且我将在每个区域中拥有完整的数据副本,是否正确

  2. 根据AWS elasticsearch文档,我必须使用Amazon elasticsearch API跨可用区中的节点复制Amazon elasticsearch集群的数据。 但我找不到通过Amazon elasticsearch API配置副本的方法,所以我想通过Elastic API,对吗?

  3. 在同一区域sa-east1中的两个可用区之间进行群集节点分配的最佳做法是什么,至少在新环境开始时,有多少专用主实例和数据节点应足以进行故障转移? 2个专用主站和2个数据节点应该足以防止数据丢失和发生故障时的停机时间?我想应该为索引配置1个副本。 我还考虑了2-3个专用主节点和3个数据节点以及每个索引的2个副本。

  4. AWS elasticsearch中没有设置文件,更改副本数量的唯一方法是通过弹性API,但是当新索引创建副本数量时,我无法找到更改默认设置的方法分片是1,这是默认设置,有没有办法更改每个新索引的默认设置?

  5. 这样的事情只会改变当前的索引。

    
    
    curl -XPUT 'https://search-aa1-a3qlyghdz2i6wszffnv4iz5cyi.sa-east-1.es.amazonaws.com/_all/_settings' -d '
    {
        "index" : {
            "number_of_replicas" : 2
        }
    }'
    
    
    

    http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html

    感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:9)

以下是您的问题的一些答案。

首先完全披露,我是一名Elastic员工并在Found团队工作。

  

据我了解,如果区域/节点发生故障,如果在节点之间复制了分片,则群集将能够完全恢复,并且我将在每个区域中拥有整个数据副本,这是正确的吗?

技术上是的。使用分片复制副本时,写入分片0的任何数据都将复制到副本0,副本0应位于不同区域的辅助节点上。

请注意,AWS ES每天只会对您的数据进行一次快照。您可以随时手动拍摄快照。在发现它每30分钟配置一次。

  

根据AWS elasticsearch文档,我必须使用Amazon elasticsearch API在可用区中的节点之间复制Amazon elasticsearch集群的数据。但我找不到通过Amazon elasticsearch API配置副本的方法,所以我想通过Elastic API,对吗?

是的,我不能100%确定AWS ES API的工作方式,但文档建议所有副本都必须通过AWS ES API配置,而不是ES API。

如果您手动管理Elasticsearch集群,则可以使用ES API https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html配置副本,并且可以设置区域感知https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-awareness.html

在“发现”中,通过指示您希望使用的区域以及我的可用区域的方式来创建群集时,这一切都已为您配置。 Found允许您直接通过控制台增加或减少可用区的数量。

  

在同一区域sa-east1中的两个可用区之间进行群集节点分配的最佳做法是什么,至少在新环境开始时,有多少专用主实例和数据节点应足以进行故障转移? 2个专用主站和2个数据节点应该足以防止数据丢失和发生故障时的停机时间?我想应该为索引配置1个副本。我还考虑了2-3个专用主节点和3个数据节点以及每个索引的2个副本。

如果容纳主节点的AZ出现故障,则在2可用区配置中使用单个主节点仍会使您失败。 AWS文档(http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains-configure-cluster)建议使用奇数个主节点来帮助避免裂脑,并且您希望具有复制数据节点的负载能力。所以就像3个主节点(每个AZ 1个额外1个以帮助选举)和4个数据节点(每个AZ 2个),至少有1个副本。

话虽如此,发现这一切都得到了解决。例如,如果您在SA-East-1中设置HA群集,Found将在每个AZ中设置2个数据节点(带有副本)&主节点和选举由Found基础架构处理,也可以跨两个区域进行管理。这可以防止因网络延迟/问题导致的脑裂。总DC故障。您可以参考https://www.elastic.co/blog/found-elasticsearch-in-production#networking了解更多信息。

  

AWS elasticsearch中没有设置文件,更改副本数量的唯一方法是通过弹性API,但我找不到更改默认设置的方法,当新索引创建副本分片数为1时,这是默认设置,是否有办法更改每个新索引的默认设置?

Elastic推荐的默认值是1个副本。要使用1个以上的副本,您需要了解原因https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html#_balancing_load_with_replicas

索引模板可能有助于您当前的情况,您可以将模板中所需的默认值设置为应用于任何未来的指标https://www.elastic.co/guide/en/elasticsearch/guide/current/index-templates.html

如果您想了解有关Elastic的发现产品的更多信息,请访问https://www.elastic.co/foundhttps://www.elastic.co/found-elasticsearch-as-a-service-with-alerts