Almacenamiento de archivos compartido con Amazon EFS - Montaje desde Lambda, ECS y EC2 con directrices de diseño

Clarificamos los criterios de selección de modos de rendimiento y throughput, y presentamos técnicas para optimizar costos mediante la migración automática a la capa IA con gestión de ciclo de vida.

Características de EFS y diferenciación con EBS y S3

EFS es un sistema de archivos gestionado compatible con NFS v4.1, cuya mayor característica es que puede montarse simultáneamente desde múltiples recursos de cómputo. EBS es almacenamiento de bloques que se adjunta a una sola instancia EC2 (excepto multi-attach de io2), y S3 es almacenamiento de objetos que no puede montarse como sistema de archivos POSIX. Cuando se necesita acceder al mismo archivo desde múltiples instancias o contenedores, EFS es la única opción. Es adecuado para casos de uso como almacenamiento de medios compartido para CMS, compartición de datos de entrenamiento de aprendizaje automático y compartición de caché de compilación en CI/CD. EFS no requiere capacidad preaprovisionada y escala automáticamente a medida que se añaden o eliminan archivos. Los datos se almacenan redundantemente en múltiples AZs dentro de una región, proporcionando resiliencia estándar contra fallos de una sola AZ. La clase de almacenamiento One Zone almacena datos en una sola AZ, ofreciendo precios más bajos a cambio de aceptar el riesgo de fallo de AZ.

Modos de rendimiento y modos de throughput

Hay dos tipos de modos de rendimiento: modo de propósito general y modo de máximo I/O. El modo de propósito general tiene baja latencia y es adecuado para la mayoría de las cargas de trabajo. El modo de máximo I/O está optimizado para acceso simultáneo desde miles de clientes, pero la latencia es ligeramente mayor. El modo de rendimiento no puede cambiarse después de la creación del sistema de archivos, por lo que los requisitos deben evaluarse durante el diseño inicial. Hay tres tipos de modos de throughput: Elastic, provisionado y burst. El modo Elastic escala automáticamente el throughput según los patrones de acceso y proporciona hasta 10 GiB/s de throughput de lectura. Como no requiere gestión de créditos de burst, se recomienda el modo Elastic para nuevas implementaciones. El modo provisionado se usa cuando se necesita garantizar un throughput constante. El modo burst proporciona throughput base proporcional al tamaño del sistema de archivos y maneja ráfagas cortas usando créditos acumulados, pero los sistemas de archivos pequeños corren riesgo de agotamiento de créditos.

Gestión de ciclo de vida y optimización de costos

La gestión de ciclo de vida de EFS migra automáticamente los archivos sin acceso durante un período determinado a la clase de almacenamiento de acceso infrecuente (IA). El precio de la clase IA es aproximadamente el 8% de la clase estándar, permitiendo una reducción de costos de hasta el 92%. Los disparadores de migración se pueden seleccionar entre 1, 7, 14, 30, 60 y 90 días. Acceder a un archivo en la clase IA genera un cargo por lectura, pero para archivos con baja frecuencia de acceso, la reducción del costo de almacenamiento supera este cargo. Al habilitar Intelligent-Tiering, los archivos accedidos nuevamente se devuelven automáticamente a la clase estándar. La clase de almacenamiento Archive ofrece costos aún más bajos y es adecuada para datos con acceso menos frecuente que IA (como datos de retención de cumplimiento). Como mejor práctica de optimización de costos, configurar la gestión de ciclo de vida para migrar a IA en 30 días con Intelligent-Tiering habilitado es efectivo para la mayoría de las cargas de trabajo. Para comprender EFS en profundidad, los libros especializados (Amazon) son útiles.

Patrones de diseño para montaje desde Lambda, ECS y EC2

Para el montaje desde EC2, se recomienda el paquete amazon-efs-utils, que soporta transporte cifrado TLS y autenticación IAM. Los security groups deben permitir el puerto NFS (2049). Para ECS (Fargate), se especifica el ID del sistema de archivos EFS y el ID del punto de acceso en la sección volumes de la definición de tarea. Los puntos de acceso permiten forzar diferentes directorios raíz y usuarios POSIX por contenedor, lo cual es efectivo para el aislamiento de datos en entornos multi-tenant. Para Lambda, se especifica la VPC y la ruta de montaje del sistema de archivos en la configuración de la función. Al montar EFS desde Lambda, la función debe ejecutarse dentro de una VPC, y el establecimiento de conexión EFS durante el cold start añade aproximadamente varios cientos de milisegundos a la primera invocación - considere esto en su diseño. Montar el mismo EFS desde múltiples funciones Lambda permite compartir datos y persistir caché entre funciones.

Seguridad y respaldo

EFS puede forzar cifrado en tránsito (TLS) mediante políticas de sistema de archivos, rechazando conexiones de clientes no cifrados. Al habilitar la autenticación IAM, se validan los permisos del rol IAM al montar, permitiendo un control granular que solo permite acceso a puntos de acceso específicos. Los permisos POSIX para control de acceso a nivel de archivo siguen funcionando normalmente. Para respaldo, EFS se integra con AWS Backup, habilitando respaldos automáticos programados y recuperación punto en el tiempo. La función de replicación crea una réplica de solo lectura de EFS en otra región, que puede aprovecharse para DR (recuperación ante desastres). El failover a la réplica requiere acción manual pero puede mantener el RTO en el orden de minutos.

Resumen

EFS es el único servicio gestionado compatible con POSIX en AWS para almacenamiento de archivos que requiere acceso compartido desde múltiples recursos de cómputo. Combinando el modo de throughput Elastic con la gestión de ciclo de vida, se puede optimizar tanto el rendimiento como el costo. El montaje desde Lambda y ECS permite aprovechar un sistema de archivos compartido en arquitecturas serverless, mientras que los puntos de acceso para aislamiento multi-tenant y las políticas de sistema de archivos para forzar cifrado abordan los requisitos de seguridad.