Cómo se miden los archivos de S3
Los archivos de S3 son un sistema de archivos compartidos vinculado al bucket de S3, diseñado para ofrecer un acceso a los archivos de baja latencia y, al mismo tiempo, mantener los costos proporcionales al conjunto de trabajo activo. El sistema de archivos mantiene una vista de los objetos del bucket y traduce de forma inteligente las operaciones del sistema de archivos en solicitudes de S3 eficientes en su nombre. A medida que trabaja con archivos y directorios específicos a través del sistema de archivos, los metadatos y el contenido de los archivos asociados se almacenan en el almacenamiento de alto rendimiento del sistema de archivos, en particular en las partes que se benefician del acceso de baja latencia. Muchas operaciones de lectura eluden por completo el sistema de archivos, ya que los datos se envían directamente desde el bucket de S3 con las tarifas de solicitud GET de S3 y sin cargos de datos de archivos de S3. Los datos autorizados siempre permanecen en el bucket de S3. Cuando escribe datos, se almacenan en el almacenamiento de alto rendimiento y alta durabilidad del sistema de archivos y, a continuación, se sincronizan de nuevo con el bucket de S3, lo que mantiene la coherencia entre el sistema de archivos y el bucket de S3 en ambas direcciones.
Con los archivos de S3, se paga un cargo de almacenamiento por la fracción de datos activos en el almacenamiento de alto rendimiento del sistema de archivos y se pagan los cargos de acceso a los datos al leer y escribir en el almacenamiento de alto rendimiento del sistema de archivos. En esta página, se explica cómo se mide cada dimensión para que pueda comprender y optimizar los costos. Para obtener información acerca de los precios según la región de AWS, consulte Precios de Amazon S3
Cómo se mide el almacenamiento del sistema de archivos
Al acceder a los datos, el sistema de archivos carga partes de los metadatos y el contenido de los archivos bajo demanda en el almacenamiento de alto rendimiento del sistema de archivos, lo que ofrece lecturas rápidas sin duplicar todo el conjunto de datos. Se configura un umbral de tamaño de archivo (128 KiB de forma predeterminada) que determina qué archivos se almacenan en un almacenamiento de alto rendimiento. Los archivos que se encuentran dentro o por debajo de este umbral son los que más se benefician del acceso de baja latencia. Los archivos que superen el umbral se transmiten directamente desde el bucket de S3 y no incurren en gastos de almacenamiento de archivos de S3. Los datos a los que no se accede en un periodo configurable (de 1 a 365 días, 30 de forma predeterminada) caducan automáticamente del almacenamiento de alto rendimiento. Se paga una tarifa de almacenamiento por la fracción de residencia de datos activos en el almacenamiento de alto rendimiento. Por lo general, la fracción es pequeña, ya que los archivos grandes se transmiten directamente desde el bucket de S3, los datos obsoletos caducan automáticamente y solo los archivos pequeños sensibles a la latencia se almacenan en un almacenamiento de alto rendimiento. El tamaño mínimo de archivo facturable en un almacenamiento de alto rendimiento es de 10 KiB.
Cómo se mide el acceso a los datos
Se pagan los gastos de acceso a los datos por las operaciones de metadatos y por las lecturas y escrituras en el almacenamiento de alto rendimiento del sistema de archivos. Las lecturas de archivos grandes (1 MiB o más) siempre se transmiten directamente desde el bucket de S3, incluso si los datos residen en el almacenamiento de alto rendimiento del sistema de archivos. S3 está optimizado para lecturas de alto rendimiento, mientras que el almacenamiento de alto rendimiento está optimizado para el acceso a archivos pequeños de baja latencia. Las lecturas directas implican solicitudes GET de S3 y una lectura de metadatos de archivos de S3 (4 KiB) sin cargos por lectura de archivos. Las operaciones de sincronización en segundo plano también conllevan cargos por el acceso a los datos y por las solicitudes de S3. La importación de datos a un almacenamiento de alto rendimiento conlleva gastos de escritura y la exportación de los cambios al bucket de S3 conlleva gastos de lectura.
Cómo se mide el acceso a los datos desde el sistema de archivos
Los archivos de S3 miden cada operación del sistema de archivos como lectura o escritura y se aplica a un archivo o metadatos. Cada operación tiene un tamaño medido mínimo y se redondea al siguiente incremento de 1 KiB. Esto significa que cada operación se divide en una o dos de las cuatro categorías siguientes: lectura de datos, lectura de metadatos, escritura de datos o escritura de metadatos. Por ejemplo, la lectura de un archivo se mide como lectura de datos y lectura de metadatos, mientras que cambiar el nombre de un archivo se mide como lectura de metadatos y escritura de metadatos. Nunca se mide una sola operación en más de dos categorías.
Las lecturas de archivos desde un almacenamiento de alto rendimiento se miden según el tamaño de los datos leídos, con un mínimo de 32 KiB por operación de lectura.
Las escrituras de archivos en almacenamiento de alto rendimiento se miden según el tamaño de los datos escritos, con un mínimo de 32 KiB por operación de escritura.
Las lecturas de metadatos se miden con un tamaño mínimo de 4 KiB y se aplican a medida que se leen los archivos de S3. Los ejemplos de operaciones de lectura de metadatos incluyen la lista de un directorio y la visualización de los atributos de un archivo.
Las escrituras de metadatos se miden con un tamaño mínimo de 4 KiB y se aplican a medida que se escriben los archivos de S3. Los ejemplos de operaciones de escritura de metadatos incluyen la creación o eliminación de archivos y directorios, el cambio de nombre, el cambio de permisos y las llamadas fsync.
Cómo se mide la transmisión directamente desde el bucket de S3
Los archivos de S3 transmiten las lecturas directamente desde el bucket de S3 en dos casos: cuando los datos del archivo no están almacenados en el almacenamiento de alto rendimiento o la lectura es de 1 MiB o más, incluso cuando los datos también residen en el almacenamiento de alto rendimiento. Este diseño refleja los puntos fuertes de cada capa de almacenamiento. El bucket de S3 está optimizado para ofrecer un alto rendimiento, mientras que el sistema de archivos está optimizado para un acceso de baja latencia.
Para archivos pequeños (menos de 128 KiB de forma predeterminada), los archivos de S3 importan datos de forma asíncrona a un almacenamiento de alto rendimiento para que las lecturas posteriores se publiquen con baja latencia. Para transmisiones de buckets directas, se pagan las solicitudes GET de S3 y una lectura de metadatos de archivos de S3 (4 KiB), sin cargos por lectura de archivos.
Cómo se mide la sincronización de buckets
Los archivos de S3 mantienen sincronizados automáticamente el sistema de archivos y el bucket de S3 vinculado. La sincronización se mide en función de los cargos por lectura y escritura de archivos y por solicitud de S3. Para obtener más información, consulte Descripción de cómo funciona la sincronización.
Importación de datos al sistema de archivos: cuando S3 copia datos del bucket de S3 al almacenamiento de alto rendimiento en función de la configuración, la operación se mide como una escritura del sistema de archivos. Las escrituras de importación se producen cuando accede a un directorio por primera vez, cuando lee un archivo que no está almacenado en un almacenamiento de alto rendimiento y cuando los archivos de S3 reflejan los cambios realizados directamente en el bucket de S3. El tamaño medido es la cantidad de datos que se escriben en un almacenamiento de alto rendimiento y en una escritura de metadatos.
Exportación de cambios al bucket de S3: cuando los archivos de S3 copian los cambios del sistema de archivos al bucket de S3, la operación se mide como una lectura de archivos y metadatos del sistema de archivos. Para este cargo solo se tienen en cuenta los datos leídos desde un almacenamiento de alto rendimiento. Por ejemplo, si anexa datos a un archivo, los archivos de S3 utilizan UploadPartCopy para evitar importar todo el objeto al almacenamiento de alto rendimiento antes de la anexión. Esto optimiza los costos de almacenamiento de alto rendimiento.
Operaciones de cambio de nombre y traslado: los buckets de S3 no admiten directorios ni cambios de nombre de forma nativa. Lo que aparece como un directorio en el sistema de archivos de S3 es un prefijo común que comparten las claves de los objetos del bucket y los objetos de S3 son inmutables. Como resultado, cuando cambia el nombre de un archivo o lo traslada, los archivos de S3 copian los datos en un objeto nuevo con la clave actualizada (medida como una solicitud PUT de S3) y eliminan el original. La sincronización se mide como una lectura de metadatos y una lectura de archivo en función de la ubicación de los datos. Si los datos del archivo no se almacenan en un almacenamiento de alto rendimiento, solo se aplica una lectura de metadatos de 4 KiB. Al cambiar el nombre de los archivos o al mover directorios, los archivos de S3 repiten esta operación de copiar y eliminar para cada objeto que aparezca bajo ese prefijo. Para obtener más información, consulte Descripción del impacto de las operaciones de cambio de nombre y traslado.
Caducidad de datos de archivos: los datos de archivos a los que no se accede en un periodo configurable de 1 a 365 días (30 de forma predeterminada) caducan automáticamente del almacenamiento de alto rendimiento. La caducidad no implica cargos por el acceso a los datos ni a los metadatos.
Actualizaciones de metadatos: los metadatos del sistema de archivos (inodos) reflejan el contenido del bucket de S3 vinculado. A medida que el bucket cambia, los metadatos se actualizan para mantener la coherencia con el estado actual del bucket. Los metadatos de los directorios a los que se accede nunca caducan. Puede utilizar la métrica de CloudWatch de inodos para supervisar el uso de los metadatos. La caducidad de los metadatos no conlleva ningún cargo.
Ejemplos de medición
Publicación de un directorio grande por primera vez
Cuando publica un directorio por primera vez, los archivos de S3 importan los metadatos de todos los archivos de ese directorio. La importación de metadatos de cada archivo se mide como una escritura de 4 KiB. Según la configuración de importación (128 KiB predeterminados), los archivos de S3 también pueden recuperar previamente y copiar los datos de los archivos pequeños de ese directorio en el almacenamiento de alto rendimiento del sistema de archivos para optimizar para la latencia más baja. La importación de datos de cada archivo se mide como una escritura según el tamaño del archivo (32 KiB como mínimo). Puede controlar qué archivos tienen sus datos importados configurando las reglas de importación. Para obtener más información, consulte Personalización de la sincronización de archivos de S3.
Lectura de un archivo pequeño que no está almacenado en un almacenamiento de alto rendimiento
Los archivos de S3 transmiten las lecturas directamente del bucket de S3 al cliente e importan los datos de forma asíncrona al almacenamiento de alto rendimiento del sistema de archivos para que las lecturas futuras sean más rápidas. Esto se mide como una lectura del sistema de archivos con el tamaño de los datos transferidos (32 KiB como mínimo). La importación asíncrona de datos al almacenamiento de alto rendimiento del sistema de archivos se mide como una escritura según el tamaño de los datos transferidos. Se sigue un proceso similar al leer un archivo del sistema de archivos cuyos datos han caducado. Cuando los archivos caducan del almacenamiento de alto rendimiento, no se incurre en ningún cargo operativo del sistema de archivos.
Escritura en el sistema de archivos
Todas las escrituras de archivos se almacenan en almacenamiento de alto rendimiento y se miden según el tamaño de los datos escritos con un mínimo de 32 KiB. Los archivos de S3 esperan un periodo de actividad de escritura inactiva (60 segundos) para agregar los cambios sucesivos en el mismo archivo antes de copiarlos en el bucket de S3. Las escrituras rápidas se capturan en una sola PUT de S3, en lugar de generar una nueva versión del objeto para cada cambio individual. Esto reduce tanto los costos de solicitud de S3 como los costos de almacenamiento de archivos de alto rendimiento. Esta sincronización de bucket se mide como una lectura del sistema de archivos para los datos leídos desde el almacenamiento de alto rendimiento y una solicitud PUT de S3.