Intentando implementar un proyecto en un servidor grande t3 con escalado automático.
Tengo mi servicio de búsqueda elástica implementado en el mismo sistema que el nodo y los proyectos de reacción. (Sin usar la búsqueda elástica de AWS)
¿Enfrentará problemas en el futuro y necesito segregar el servicio de búsqueda elástica a algún otro servidor?
Siempre es bueno tener un servidor dedicado separado para ejecutar el servidor de Elasticsearch, pero como está utilizando AWS, algunas de las cosas que puede hacer para minimizar los problemas:
Elasticsearch es una aplicación con estado que contrasta con su node y su aplicación de react , a menos que también esté almacenando el estado allí, lo cual no es una buena idea y, debido a la naturaleza sin estado de las aplicaciones, el escalado automático es muy útil, ya que puede hacerlo a pedido en función de la CPU. , la memoria u otras métricas aumentan o reducen las instancias.
Pero en el caso de Elasticsearch u otras aplicaciones con estado, se vuelve complicado ya que cuando aumenta o reduce la instancia, los fragmentos se reubican si no se pueden alcanzar dentro de un umbral que puede conducir a un clúster de Elasticsearch desequilibrado.
Ahora, para minimizar estos problemas:
Asegúrese de no crear un nuevo proceso de Elasticsearch cuando aumente o reduzca la escala de las instancias de acuerdo con su política de escalado automático, y el proceso de Elasticsearch debe repararse y escalarse hacia arriba o hacia abajo con alguna intervención manual.
Si tiene que ampliar el clúster de Elasticsearch, asegúrese de deshabilitar la asignación de fragmentos para evitar los problemas mencionados anteriormente.
Estos son algunos problemas conocidos que podría enfrentar y podría haber incluso más en función de su configuración y, mientras escribía la respuesta, sentí que era muy fácil tener una instancia dedicada para Elasticsearch para evitar estos problemas extraños.
Agregaría a otras respuestas lo siguiente:
Probablemente hay muchas más cosas a considerar, pero eso depende totalmente de su aplicación, presupuesto, SLA, etc.