Personalización de la sincronización de archivos de S3
Los archivos de S3 permiten controlar el flujo de datos entre el sistema de archivos y el bucket de S3 vinculado mediante una configuración de sincronización. La configuración predeterminada equilibra la latencia y el costo de la mayoría de las cargas de trabajo, pero puede ajustarla para que se adapte a los patrones de acceso. La importación de más datos por adelantado reduce la latencia de lectura a costa de mayores gastos de almacenamiento y escritura. La importación de menos datos mantiene bajos los costos de almacenamiento, pero significa que se realizan más lecturas desde S3 con una latencia más alta. Cada configuración tiene dos componentes: reglas de importación de datos, que controlan qué datos se copian en el sistema de archivos y cuándo, y reglas de datos de caducidad, que controlan cuánto tiempo permanecen los datos no utilizados en el sistema de archivos. Puede actualizar estas reglas mediante la consola de administración de AWS o la API PutSynchronizationConfiguration.
Importación de reglas de datos
Las reglas de datos de importación controlan cómo se copian los datos del bucket al sistema de archivos. Puede tener un máximo de 10 reglas de importación de datos por sistema de archivos. Cada regla de importación de datos tiene los siguientes parámetros:
prefijo: el prefijo de S3 al que se aplica la regla. Especifique una cadena vacía (“”) para todo el bucket (ámbito del sistema de archivos) o un prefijo específico (por ejemplo, “datos/ml/”) dentro del sistema de archivos. El prefijo debe terminar con una barra diagonal (/), a menos que se especifique todo el bucket con “”. Debe incluir exactamente una regla de importación para el directorio raíz. Predeterminado: “” (todo el ámbito del bucket o del sistema de archivos).
desencadenador: cuándo importar los datos: ON_DIRECTORY_FIRST_ACCESS o ON_FILE_ACCESS. Predeterminado: ON_DIRECTORY_FIRST_ACCESS.
ON_DIRECTORY_FIRST_ACCESS: los datos del archivo se importan cuando se accede por primera vez a un directorio. Por ejemplo, cuando se accede por primera vez a un directorio mostrando su contenido o abriendo un archivo dentro de él, se importan los datos de todos los archivos secundarios inmediatos de ese directorio con un tamaño inferior al umbral sizeLessThan. Esta opción resulta útil para las cargas de trabajo que requieren una latencia baja cuando se accede por primera vez a los archivos.
ON_FILE_ACCESS: los datos de los archivos se importan solo cuando se lee un archivo por primera vez. Esta opción minimiza los datos importados a costa de una mayor latencia en la primera lectura.
sizeLessThan: tamaño máximo de archivo (en bytes) para importarlo automáticamente. Aunque los archivos de S3 importan los metadatos de todos los archivos, solo importan los datos de los archivos con un tamaño inferior a este umbral. Mínimo: 0 bytes (no se importan datos, los metadatos se seguirán importando). Máximo: 52 673 613 135 872 bytes (48 TiB). Predeterminado: 131 072 bytes (128 KiB).
Comportamiento de coincidencia de prefijos
Cuando varias reglas de importación de datos coinciden con un archivo, los archivos de S3 aplican la regla con el prefijo más específico. Por ejemplo, supongamos que tiene tres reglas:
Regla 1: prefijo = “” (bucket completo), sizeLessThan = 64 KiB, desencadenador = ON_FILE_ACCESS
Regla 2: prefijo = “hot/”, sizeLessThan = 1 MiB, desencadenador = ON_DIRECTORY_FIRST_ACCESS
Regla 3: prefijo = “hot/largeData/”, sizeLessThan = 256 KiB, desencadenador = ON_DIRECTORY_FIRST_ACCESS
Para un archivo en hot/largeData/data.txt, los archivos de S3 aplican la regla 3. Para un archivo en hot/data.txt, los archivos de S3 aplican la regla 2. Para un archivo en cold/data.txt, los archivos de S3 aplican la regla 1 porque no hay una regla específica para el prefijo cold/.
Reglas de datos de caducidad
Las reglas de datos de caducidad controlan cuándo se eliminan del sistema de archivos los datos no utilizados para optimizar los costos de almacenamiento. Los archivos de S3 eliminan los datos cuando no se han leído durante un periodo específico y si sus cambios ya se han sincronizado con el bucket de S3. Cada vez que se lee un archivo, su temporizador de caducidad se restablece, lo que prolonga el tiempo que los datos permanecen en el sistema de archivos. Puede especificar el siguiente parámetro en las reglas de caducidad de datos:
daysAfterLastAccess: número de días transcurridos desde la última lectura en los que se eliminan los datos del sistema de archivos. Mínimo: 1 día. Máximo: 365 días. Predeterminado: 30 días.
Si tiene cargas de trabajo de larga duración que acceden con frecuencia a los mismos datos, tenga en cuenta la posibilidad de prolongar los periodos de caducidad (de 30 a 90 días). Para los datos temporales, tenga en cuenta periodos más cortos (de 1 a 7 días).
Configuraciones de ejemplo
Uso compartido de archivos de uso general (configuración predeterminada): un equipo de desarrolladores y científicos de datos monta un sistema de archivos de S3 para compartir código, archivos de configuración y conjuntos de datos pequeños. La mayoría de los archivos ocupan menos de 128 KiB y se leen repetidamente a lo largo del día. La configuración predeterminada funciona bien para esta carga de trabajo: ON_DIRECTORY_FIRST_ACCESS importa metadatos y datos de archivos pequeños cuando se accede por primera vez a cualquier archivo de un directorio, lo que funciona bien cuando es probable que se acceda a los archivos del mismo directorio juntos, como los archivos de origen de un proyecto o los archivos de configuración de una implementación. El acceso posterior por parte de cualquier usuario es rápido. Cuando un usuario abre un archivo grande, como un archivo de registro, los archivos de S3 lo transmiten automáticamente y de forma directa desde S3 para obtener un alto rendimiento. El plazo de caducidad de 30 días mantiene los archivos en uso activo en el sistema de archivos sin necesidad de limpiarlos manualmente.
Formación de ML con lecturas repetidas: un trabajo de entrenamiento lee miles de archivos pequeños (menos de 10 MiB) de forma repetida a lo largo de varias épocas. Para minimizar la latencia, establezca un umbral alto para sizeLessThan (por ejemplo, 10 MiB) con ON_DIRECTORY_FIRST_ACCESS para que los datos de los archivos se carguen previamente cuando el script de formación muestre cada directorio por primera vez. Establezca una fecha de caducidad corta (por ejemplo, 3 días) para que los datos se eliminen del sistema de archivos inmediatamente después de finalizar el trabajo de entrenamiento.
Cargas de trabajo de los agentes con amplia capacidad de detección de archivos: un agente de IA explora un gran repositorio de documentos, códigos o archivos de la base de conocimientos para responder a las consultas, y lee muchos archivos pequeños una vez para buscar el contexto pertinente. Defina sizeLessThan en 0 para que no se importe ningún dato al sistema de archivos. El agente puede explorar todo el árbol de directorios con una latencia baja para detectar archivos, mientras que cada archivo leído se entrega directamente desde S3. Esto reduce los costos de las cargas de trabajo que entran en contacto con muchos archivos de forma impredecible, pero que rara vez revisitan el mismo archivo, y se escala de forma natural a medida que se agregan más agentes que leen en paralelo.
Prefijos fríos y calientes: un sistema de archivos contiene los archivos de configuración a los que se accede con frecuencia en config/ y los datos archivados a los que se accede con poca frecuencia en archive/. Cree dos reglas de importación: una para config/ con un sizeLessThan y ON_DIRECTORY_FIRST_ACCESS altos y una para archive/ con sizeLessThan establecido en 0 y ON_FILE_ACCESS. Esto mantiene los archivos de configuración en el sistema de archivos para un acceso rápido y, al mismo tiempo, evita los costos de almacenamiento de los datos archivados que rara vez se leen.