cuándo usar NFS para aplicaciones web

cuándo usar NFS para aplicaciones web

Actualmente estoy construyendo una arquitectura de aplicación web simple en AWS, de la siguiente manera: Elastic Load Balancer - múltiples interfaces - base de datos RDS.

También configuré un servidor NFS para almacenar todas las imágenes cargadas por los usuarios a través de la aplicación web, como fotos de perfil principalmente (no puedo usar S3 para esto, solo sigo las especificaciones que obtengo...).

Las máquinas virtuales front-end son generadas por un grupo de escalado automático. Cuando se genera una VM, descarga las fuentes de la aplicación web desde un depósito de S3. El problema es que tengo algunos archivos enormes dentro de esas fuentes (archivos estáticos principalmente, como mp4 o imágenes). Estoy pensando en almacenar esos archivos estáticos grandes también en el servidor NFS, porque lleva demasiado tiempo descargarlos desde S3.

Entonces mi pregunta es: ¿Cuándo es relevante almacenar un archivo en NFS y cuándo es mejor dejarlo en cada interfaz? Por ejemplo, si almaceno mp4 en NFS, ¿por qué no almacenar toda la aplicación web en este NFS?

nota: no quiero crear una AMI que contenga esos archivos, ya que no es lo suficientemente flexible al modificarlos

Respuesta1

Todo esto se reduce al rendimiento. Si su almacenamiento NFS es lo suficientemente rápido, entonces no hay nada que le impida colocar todas sus aplicaciones web y archivos de contenido web en él para que sean accesibles para todas sus máquinas virtuales front-end.

Dicho esto, la razón más común por la que las personas no hacen esto es porque la latencia de red adicional involucrada en la recuperación de archivos del almacenamiento en red se convierte en un retraso adicional cuando los clientes cargan su aplicación/sitio web en su navegador.

Obviamente, esto depende del almacenamiento subyacente de la máquina virtual, pero normalmente el almacenamiento local casi siempre tiene una latencia más baja y, por lo tanto, se prefiere para almacenar contenido estático. Muchas implementaciones con equilibrio de carga en las que he estado involucrado utilizan DRDB para mantener el contenido estático sincronizado y disponible para todos los servidores web.

información relacionada