Всегда приятно иметь отдельный выделенный сервер для запуска сервера Elasticsearch, но, поскольку вы используете AWS некоторые вещи, которые вы можете сделать, чтобы минимизировать проблемы:
Elasticsearch - это контраст приложения с отслеживанием состояния в ваше приложение node
и react
, если вы также не сохраняете состояние там, что не является хорошей идеей, и из-за природы приложений без сохранения состояния автомасштабирование очень полезно, поскольку вы можете по запросу в зависимости от процессора, памяти или другие метрики увеличивают или уменьшают масштабы экземпляров.
Но в случае Elasticsearch или других приложений с отслеживанием состояния это становится сложным, поскольку при масштабировании экземпляра вверх или вниз шарды перемещаются, если они не достижимы в пределах порогового значения что может привести к несбалансированному кластеру Elasticsearech.
Теперь, чтобы минимизировать эти проблемы:
- Убедитесь, что вы можете хранить индексы Elasticsearch на подключенном к сети диске, чтобы не было данных потеря, когда автомасштабирование приносит новый экземпляр и новый экземпляр Необходимо снова использовать более ранние сетевые подключения EBS (где хранятся ваши данные).
Убедитесь, что вы не создаете новый процесс Elasticsearch при увеличении или уменьшении масштабов экземпляров в соответствии с вашей политикой автомасштабирования и процесс Elasticsearch должен быть исправлен и масштабироваться вверх / вниз с некоторым ручным вмешательством.
Если вам необходимо масштабировать кластер Elasticsearch, убедитесь, что вы отключили выделение сегментов, чтобы избежать проблем, упомянутых ранее .
Это некоторые известные проблемы, с которыми вы можете столкнуться, и их может быть даже больше в зависимости от вашей конфигурации, и при написании самого ответа я чувствовал, что так легко просто иметь выделенный экземпляр для Elasticsearch, чтобы избежать этих странных проблем.