Существует большой учебник elasticsearch на ec2 о настройке ES на Amazon EC2. Я изучил его и применил все рекомендации.
Теперь у меня есть AMI и я могу запустить любое количество узлов в кластере из этого AMI. Автоматическое обнаружение настроено, и узлы присоединяются к кластеру, как они действительно должны.
Вопрос: Как настроить кластер таким образом, чтобы я мог автоматически запускать/завершать узлы в зависимости от нагрузки на кластер?
Например, я хочу, чтобы выполнялось только 1 node, когда у нас нет нагрузки и 12 узлов, работающих при максимальной нагрузке. Но подождите, если я завершу 11 узлов в кластере, что произойдет с осколками и репликами? Как убедиться, что я не теряю данные в кластере, если я заканчиваю 11 узлов из 12 узлов?
Мне может понадобиться настроить S3 Gateway для этого. Но все шлюзы, кроме локальных, устарели.
В руководстве содержится статья о распределение shards. Возможно, мне не хватает чего-то очень простого, но я должен признать, что мне не удалось выяснить, возможно ли настроить один node для хранения всех копий осколков. Моя цель - убедиться, что если это будет единственный node, запущенный в кластере, мы все равно не потеряем никаких данных.
Единственное решение, которое я могу себе представить сейчас, - настроить индекс на 12 черепов и 12 реплик. Затем, когда запускается до 12 узлов, каждый node будет иметь копию каждого осколка. Но мне не нравится это решение, потому что мне придется переконфигурировать кластер, если я захочу иметь более 12 узлов при максимальной нагрузке.