2015-11-26 2 views
3

У меня есть некоторые вопросы, касающиеся AWS elasticsearch доступности осведомленности зоны и реплики:AWS elasticsearch осведомленности зоны доступности и реплики

  1. В моем понимании, в случае отказа в зоне/узла, если Осколки были скопированы между узлами кластер сможет полностью восстановиться, и у меня будет целая копия данных в каждой зоне, правильно?

  2. Согласно документации AWS elasticsearch, я должен использовать API Amazon elasticsearch для репликации данных для кластера Amazon elasticsearch по узлам в зонах доступности. Но я не мог найти способ настроить реплики через API Amazon elasticsearch, так что, полагаю, через Elastic API, верно?

  3. Что лучше всего подходит для распределения узлов кластера по двум зонам доступности в том же регионе sa-east1, сколько выделенных мастер-экземпляров и узлов данных должно быть достаточным для перехода на другой ресурс, по крайней мере, для начала новой среды? 2 выделенных мастера и 2 узла данных должны быть достаточными для предотвращения потери данных и времени простоя в случае отказа? Я предполагаю, что 1 реплика должна быть настроена для индекса. Я также думал о 2-3 выделенных мастера и 3 узлах данных и 2 репликах для каждого индекса.

  4. В AWS elasticsearch нет файла настроек, единственный способ изменить количество реплик - через API-интерфейс, но я не могу найти способ изменить настройку по умолчанию, когда новый индекс создал количество копий реплик 1, что по умолчанию, есть способ изменить настройки по умолчанию для каждого нового индекса?

что-то вроде этого только меняет текущие индексы.

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

Спасибо за любую помощь вы можете предоставить!

ответ

8

Вот несколько ответов на ваши вопросы.

Полное раскрытие информации, я работаю в команде Elastic и работаю над командой Found.

В моем понимании, в случае отказа в зоне/узла, если Осколки были реплицируется между узлами кластера сможет полностью восстановиться и у меня будет целая копия данных в каждой зоне, это верный ?

Технически да. При использовании реплик shard любые данные, записанные в shard 0, будут реплицированы в реплику 0, которая должна быть расположена на вторичном узле в другой зоне.

Помните, что AWS ES только моментально копирует ваши данные один раз в день. Вы можете вручную делать снимки, когда захотите. В приложении «Найден» он настроен каждые 30 минут.

Согласно документации AWS elasticsearch, я должен использовать API Amazon elasticsearch для репликации данных для кластера Amazon elasticsearch по узлам в зонах доступности.Но я не мог найти способ настроить реплики через API Amazon elasticsearch, так что, полагаю, через Elastic API, правильно?

Да, я не уверен на 100%, как работает AWS ES API, но в документации предполагается, что все реплики должны быть настроены через API AWS ES, а не 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.

В найденном все это настроено для вас при создании кластера, указав регион и как мои зоны доступности, которые вы хотите использовать. Найденный позволяет увеличить или уменьшить количество зон доступности, а также непосредственно через консоль.

Что лучше всего подходит для распределения узлов кластера в двух зонах доступности в одном регионе sa-east1, сколько выделенных мастер-экземпляров и узлов данных должно быть достаточным для восстановления после сбоя, по крайней мере, для начала новой среды? 2 выделенных мастера и 2 узла данных должны быть достаточными для предотвращения потери данных и времени простоя в случае отказа? Я предполагаю, что 1 реплика должна быть настроена для индекса. Я также думал о 2-3 выделенных мастера и 3 узлах данных и 2 репликах для каждого индекса.

Использование одного главного узла в конфигурации 2 зоны доступности все равно оставит вас открытыми для отказа, если AZ, на котором размещен главный узел, не удалось. Документация AWS (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains-configure-cluster) предлагает нечетное количество мастер-узлов, чтобы избежать раздвоения мозга, и вы хотите, чтобы способность загрузки ваших реплицированных данных была реплицирована. Так что что-то вроде 3 основных узлов (1 за AZ & 1 дополнительный, чтобы помочь с выборами) и 4 узла данных (2 на AZ) с не менее чем 1 репликой.

Сказав это, с помощью Found это все позаботится. Например, если вы настроили кластер HA в SA-East-1, Found установил бы 2 узла данных в каждом AZ (с репликами) &. Главный узел и выборы обрабатываются инфраструктурой Found, которая также управляется в обеих зонах. Это предотвращает расщепление мозга из-за задержек сети/проблем. & общий отказ постоянного тока. Вы можете обратиться к https://www.elastic.co/blog/found-elasticsearch-in-production#networking за дополнительной информацией.

Существует нет файла настроек в AWS elasticsearch, единственный способ изменить количество копий не с помощью эластичного API, но я не могу найти способ, чтобы изменить настройки по умолчанию, когда новый индекс создал ряд реплик shards - 1, что по умолчанию, есть способ изменить настройки по умолчанию для каждого нового индекса?

Рекомендован по умолчанию Elastic - 1 реплика. Чтобы использовать более 1 реплики, вам нужно понять, почему https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html#_balancing_load_with_replicas.

шаблоны индекса может помочь с вашей текущей ситуацией, в которой вы можете установить значения по умолчанию, которые вы хотите в шаблоне должны быть применены к любому будущему indicies https://www.elastic.co/guide/en/elasticsearch/guide/current/index-templates.html

Если вы хотите получить больше информации о Обнаружили размещения Elastic, пожалуйста, посетите https://www.elastic.co/found и https://www.elastic.co/found-elasticsearch-as-a-service-with-alerts

+0

Благодарим вас за подробный ответ, 1. Я не смог найти способ использовать собственный API-интерфейс Amazon ES для создания черепов реплик для кластера, из-за этого я спросил здесь. 2. Я имел в виду 2-3 выделенных мастера и 3 узла данных и 2 реплики, а не один главный узел в 2 зонах доступности. 3. Зачем использовать 1 реплика с 4 узлами? а не 3 реплики с 4 узлами? с отказом из двух узлов данных из 4 узлов данных с 1 репликой, таким образом я могу потерять все данные, мой вопрос был в том, что является лучшей практикой для этого? сколько реплик? благодаря ! – Berlin

+0

Hi @Berlin, 1. Извините, я тоже не смог найти детали. Возможно, попробуйте разместить на форумах Amazon. Найдено предоставляет все API Elasticsearch и консоль Found для управления кластером. 2. У Elasticsearch всегда будет один активный мастер, если он находится в пределах от 1 до x зон доступности. У вас могут быть «пассивные» мастер-узлы, которые могут справиться с откатом. С помощью Found он обрабатывает инфраструктуру вокруг основных узлов. 3. Пара найденных статей, которые могут помочь https://www.elastic.co/blog/found-sizing-elasticsearch https://www.elastic.co/blog/found-elasticsearch-in-production – cstrzadala