There's a good article on s3fs here, que después de leer recurrí a un recurso compartido de EBS.
Se destacan algunas consideraciones importantes cuando se utiliza s3fs, como los relativos a las limitaciones inherentes de S3:
- ningún archivo puede ser más de 5 GB
- no se puede actualizar parcialmente un archivo para cambiar una sola byte volverá a cargar todo el archivo.
- operación en muchos archivos pequeños es muy eficiente (cada uno es un objeto S3 después de todo) pero los archivos grandes son muy ineficientes
- Aunque S3 admite descargas parciales/fragmentadas, s3fs no aprovecha esto, por lo que si desea para leer solo un byte de un archivo de 1GB, tendrá que descargar todo el GB.
Por lo tanto, depende de lo que almacene si s3fs es una opción viable. Si está almacenando, por ejemplo, fotos, donde desea escribir un archivo completo o leer un archivo completo, nunca cambie un archivo de forma incremental, entonces está bien, aunque uno puede preguntar, si está haciendo esto, ¿por qué no usar S3? API directamente?
Si está hablando de datos de aplicación (por ejemplo, archivos de base de datos, archivos de registro) en los que desea hacer pequeños cambios incrementales, es definitivamente un no - S3 Simplemente no funciona de esa manera no puede cambiar incrementalmente un archivo.
El artículo mencionado anteriormente habla de una aplicación similar - s3backer - que soluciona los problemas de rendimiento implementando un sistema de archivos virtual sobre S3. Esto nos lleva alrededor de los problemas de rendimiento, pero sí tiene algunos problemas de su propia:
- alto riesgo de corrupción de datos, debido al retraso escribe
- demasiado pequeños tamaños de bloque (por ejemplo, el defecto 4K) pueden agregar significativa costos adicionales (por ejemplo, $ 130 por 50 GB con capacidad de almacenamiento de 4K bloques)
- tamaños de bloque demasiado grandes pueden agregar una transferencia de datos significativa y honorarios de almacenamiento.
- el uso de memoria puede ser prohibitivo: de forma predeterminada almacena en caché 1000 bloques.
Con el tamaño de bloque 4K predeterminado, eso no es un problema, pero la mayoría de los usuarios
probablemente querrán aumentar el tamaño del bloque.
He recurrido a EBS Mounted Drived compartido desde una instancia de EC2. Pero debe saber que, aunque es la opción más eficiente, tiene un gran problema Un compartimiento EFS montado en EBS tiene sus propios problemas: un único punto de falla; si la máquina que comparte el volumen de EBS se cae, usted pierde el acceso en todas las máquinas que acceden al recurso compartido.
Este es un riesgo con el que pude vivir y fue la opción que elegí al final. Espero que esto ayude.
es una pena preguntas como esta terminan siendo cerradas. pero al menos no se eliminan ... – arod
Sí, dennos una sección de opinión maldita o algo por el estilo. A veces necesitas una opinión ... –
Nuevamente una buena pregunta cerrada ... ¡Es como "cerrado" es una etiqueta para una buena pregunta! – nemo