Я новичок в ElasticSearch, но уже использую ElasticSearch на своем рабочем сайте.
Я установил ElasticSearch в один экземпляр EC2. После использования ElasticSearch в течение нескольких месяцев, в настоящее время ЦП экземпляра уже достигает 100% в пиковое время, и запросы становятся такими медленными. Но в непиковое время загрузка ЦП составляет всего 10%.
Я знаю, что могу использовать автомасштабирование для создания нового экземпляра при условии, что экземпляр загружен с определенной высокой загрузкой ЦП. Я использовал это на своем веб-сервере с помощью автомасштабирования AWS и Elastic Load Balancer. Но могу ли я сделать это с помощью ElasticSearch? С чего мне начать?
Это было довольно хорошо ответил на StackOverflow
Полный ответ стоит прочитать, но вот ключевые моменты:
Тем не менее, у меня на самом деле есть мои ES-серверы за Auto-Scale. Но у меня он настроен так, чтобы всегда поддерживать одинаковое количество серверов; он нужен только для того, чтобы всегда иметь под рукой два сервера, а не увеличивать или уменьшать масштаб.
Моя рекомендация? Настройте два сервера t2.small или t2.micro в качестве своих серверов, а не только один сервер. Пусть оба работают постоянно. Затем, когда вы знаете, что трафик будет высоким в течение определенного периода времени (скажем, недели или около того), остановите один сервер, увеличьте его тип экземпляра (вы можете сделать это, не изменяя никаких других аспектов сервера), а затем снова запустить сервер. Если вы сделаете это последовательно и убедитесь, что кластер вернется в зеленое состояние, вы можете увеличить размер второго сервера, и ваши пользователи не будут иметь прерывания обслуживания.
TL; DR: автоматическое масштабирование на основе нагрузки не рекомендую для серверов ElasticSearch. Перейдите к паре крошечных экземпляров (за балансировщиком нагрузки) и, если вы можете предвидеть нагрузку, увеличьте размер каждого сервера индивидуально по мере необходимости.