EC2 - Almacenamiento compartido - S3FS o EBS?

9

Construir mi servicio web en EC2 en este momento y tener una sola instancia detrás de un equilibrador de carga. Por supuesto, atenderé múltiples instancias.

Mi idea inicial era ejecutar todas las instancias de esclavos tontos y usar S3 como almacenamiento local. Para esto, comencé a usar S3FS pero no está realmente listo, por lo que he visto, para uso de producción en un entorno de servicio web. La escritura de registros parece aparecer muy tarde, si no nunca. Numerosos problemas con el almacenamiento en caché extraño, incluso sin banderas de caché, etc. Solo generalmente pesadilla para desarrollar.

Pero, las alternativas parecen pocas. Uno es obviamente los volúmenes de EBS, que se pueden adjuntar a una sola instancia. Algunas soluciones para compartir esto: -

  • SMB compartiendo con otras instancias. Tener un maestro y el resto esclavos: ¿obv necesita redundancia incorporada aquí con múltiples volúmenes EBS tal vez?
  • Rsync que comparte a otras cajas. Esto parece doloroso, considerando que no es persistente y se actualizará periódicamente. Potencialmente bien, si hay scripts forzados a actualizarse cuando se han producido cambios importantes.

La pregunta es ... ¿qué HACEN las personas? Parece un caso de uso completamente común, pero la variedad de respuestas encontradas en foros e incluso aquí en SF parece sugerir que no hay una respuesta concisa ... ¡se necesita ayuda!

cera
fuente

Respuestas:

0

Esto se debe a que hay muchas respuestas, dependiendo de su familiaridad con las opciones, con qué se siente cómodo, con qué comparte y con qué frecuencia se sincronizará, qué tan "sincronizado" debe ser, cómo se " se utilizará (¿repuesto para el latido del corazón? ¿Solo lectura frente a una instancia de escritura? ¿Instancias equilibradas?) y cuán complicado desea que sea la configuración y qué aplicación está utilizando (bases de datos que pueden sincronizarse por sí mismas). Aplicaciones que se crean para almacenamiento compartido ? ...)

Puede usar Rsync para programar sincronizaciones, recursos compartidos desde un servidor de archivos, servidor NFS, "software RAID 1" DRBD, etc., depende de su caso de uso particular y de cómo está haciendo una copia de seguridad de los datos.

La respuesta corta es que no hay respuesta a su pregunta porque depende del caso de uso.

Bart Silverstrim
fuente
Gracias Bart Temía ese tipo de respuesta, ¡aunque era de esperar, supongo! El caso de uso es ... Tengo un servicio web impulsado por PHP: también alberga imágenes, CSS y el resto (todo esto podría ser portado a s3 / cloudfront estándar), los DB están en RDS. Lo único escrito son archivos de registro más allá de eso realmente. - Me estoy moviendo hacia el uso de un EBS con rsync para mantenerlo actualizado desde s3. Y un script para enviar actualizaciones manualmente.
encerado
2

Un volumen de EBS que empuja a S3 / CloudFront parece ser el mejor movimiento aquí, especialmente si le preocupan las imágenes, CSS, JavaScript, ese tipo de cosas.

EBS será más fácil de capturar / respaldar que S3, especialmente para el sistema de archivos del servidor.

También puede designar un servidor como "maestro" y otro como "esclavo" y solo realizar cambios en el "maestro", por ejemplo.

En cuanto al registro, eche un vistazo a algunos de los servicios de registro en la nube como http://loggly.com/ o https://papertrailapp.com/ .

HTH

Alex W
fuente