View a markdown version of this page

Prácticas recomendadas de archivos de S3 - Amazon Simple Storage Service

Prácticas recomendadas de archivos de S3

En esta página, se describen las prácticas recomendadas para trabajar con los sistemas de archivos de S3.

Rendimiento y optimización de costos

  • Paralelice las cargas de trabajo: los archivos de S3 están diseñados para admitir cargas de trabajo altamente paralelas. La distribución de las lecturas entre varios archivos y varias instancias informáticas ayuda a maximizar el rendimiento agregado. También puede crear varios sistemas de archivos basados en diferentes prefijos específicos dentro del mismo bucket (en lugar de crear un sistema de archivos en todo el grupo) para escalarlos horizontalmente y mejorar el rendimiento agregado.

  • Limite el sistema de archivos al prefijo más pequeño que necesite la carga de trabajo para minimizar el impacto de los cambios de nombre: S3 no tiene un concepto nativo de directorios. Cuando cambia el nombre o mueve un directorio, los archivos de S3 deben escribir los datos en un objeto nuevo con la clave actualizada y eliminar el original de cada archivo en ese directorio. Cambiar el nombre de los directorios con decenas de millones de archivos puede aumentar considerablemente los costos de las solicitudes de S3 y el tiempo de sincronización. Limite el sistema de archivos al conjunto de datos activo o estructure los datos de manera que los directorios a los que desee cambiar el nombre contengan menos archivos. Para obtener más información, consulte Descripción del impacto de las operaciones de cambio de nombre y traslado.

  • Utilice tamaños de E/S grandes: los archivos de S3 miden cada operación de lectura y escritura a un mínimo de 32 KB. El uso de tamaños de E/S más grandes (1 MB o más) amortiza la sobrecarga por operación y es más rentable que muchas lecturas o escrituras pequeñas. Cuando se utiliza el ayudante de montaje, los tamaños predeterminados del búfer de lectura y escritura de NFS se establecen en 1 MB para un rendimiento óptimo.

  • Ajuste el valor sizeLessThan en la configuración de importación para que coincida con los tamaño de los archivos: de forma predeterminada, los archivos de S3 almacenan en caché los datos de los archivos de menos de 128 KB cuando accede por primera vez a un directorio. Los archivos que superen este umbral se leen directamente desde S3. Si la carga de trabajo realiza lecturas pequeñas y sensibles a la latencia en archivos más grandes, aumente el umbral sizeLessThan para que coincida con los tamaños de archivo que necesita en el almacenamiento de alto rendimiento del sistema de archivos para un acceso de baja latencia. Para obtener más información, consulte Personalización de la sincronización de archivos de S3.

  • Configure los plazos de caducidad para que se adapten al ciclo de vida de la carga de trabajo: los datos que no se hayan leído dentro del plazo de caducidad se eliminarán automáticamente del sistema de archivos. Para las cargas de trabajo de corta duración, como los trabajos por lotes o las sesiones de formación, utilice un plazo de caducidad más corto (de 1 a 7 días) para minimizar los costos de almacenamiento. En el caso de las cargas de trabajo que revisitan los mismos datos durante semanas, utilice un plazo de caducidad mayor (30 a 90 días) para seguir beneficiándose de la baja latencia. Para obtener más información, consulte Personalización de la sincronización de archivos de S3.

  • Utilice reglas con un ámbito de prefijo para cargas de trabajo mixtas: si el bucket contiene datos a los que se accede con frecuencia y a los que se accede con poca frecuencia, cree reglas de importación independientes para cada prefijo. Esto permite importar datos de forma intensiva para los prefijos activos y, al mismo tiempo, mantener los prefijos inactivos solo como metadatos. Para obtener más información, consulte Personalización de la sincronización de archivos de S3.

  • Cree un destino de montaje en cada zona de disponibilidad: recomendamos crear un destino de montaje en cada zona de disponibilidad en la que opere para reducir los costos de transferencia de datos entre zonas de disponibilidad y mejorar el rendimiento. Esto garantiza que los recursos informáticos siempre tengan una ruta de red local al sistema de archivos, lo que mejora la disponibilidad y la latencia. Al crear un sistema de archivos mediante la consola de administración de AWS, los archivos de S3 crean automáticamente un destino de montaje en cada zona de disponibilidad de la VPC seleccionada.

Sincronización

  • Conozca el modelo de consistencia de los archivos de S3: cuando un archivo del sistema de archivos se modifica al mismo tiempo que su objeto correspondiente en el bucket de S3, los archivos de S3 tratan el bucket de S3 como el origen de información verdadera y mueven el archivo al directorio de objetos perdidos. Para evitar conflictos, designe una ruta (sistema de archivos o S3) como escritora principal.

  • Supervise el estado de la sincronización: utilice las métricas de CloudWatch para realizar un seguimiento del estado de la sincronización entre el sistema de archivos y el bucket de S3. Un aumento de PendingExports indica que la carga de trabajo está generando cambios más rápido que la velocidad de sincronización, lo que significa que la sincronización tardará más en completarse. Una métrica de ExportFailures CloudWatch distinta de cero indica los archivos que no se han podido exportar y que requieren una acción. Para obtener más información, consulte Solución de problemas de archivos de S3.

Control de acceso

  • Siga el principio de privilegio mínimo: conceda solo los permisos mínimos necesarios para cada rol de IAM y política de sistema de archivos. Por ejemplo, si un recurso informático solo necesita leer datos del sistema de archivos, adjunte la política administrada de AmazonS3FilesClientReadOnlyAccess en lugar de AmazonS3FilesClientFullAccess. Además, tenga en cuenta la posibilidad de crear el sistema de archivos con un prefijo específico y no con todo el bucket, de modo que los clientes solo puedan acceder a los datos que contengan ese prefijo.

  • No modifique el rol de IAM de los archivos de S3: no modifique ni elimine el rol de IAM que los archivos de S3 asumen al sincronizarse con el bucket de S3. Al cambiar o eliminar este rol, se puede interrumpir la sincronización entre el sistema de archivos y el bucket de S3.

  • No modifique la regla de EventBridge de archivos de S3: los archivos de S3 crean una regla de EventBridge (con el prefijo DO-NOT-DELETE-S3-Files) para detectar cambios en el bucket de S3. No desactive, modifique ni elimine esta regla. Al quitarla, los archivos de S3 no podrán detectar objetos nuevos o modificados en el bucket, lo que provocará que el sistema de archivos quede obsoleto.

  • Tenga en cuenta la opción de restringir el acceso a los registros escritos por efs-utils: efs-utils escribe los nombres de las claves de los objetos de S3 directamente en los registros que almacena en el directorio /var/log/amazon/efs. Si los nombres de las claves de S3 contienen información confidencial, debe restringir el acceso a este directorio mediante permisos POSIX. Por ejemplo, puede restringir el acceso mediante el comando sudo chmod 700 /var/log/amazon/efs.

Supervisión

  • Configuración de alarmas en caso de errores de sincronización: se crean alarmas de CloudWatch en ImportFailures y ExportFailures para notificar cuando los archivos no se sincronicen. Las exportaciones erróneas pueden indicar problemas con los permisos, con las claves de cifrado o con los límites de longitud de las rutas. Para obtener más información, consulte Solución de problemas de archivos de S3.