EFS: almacenamiento de archivos compartido para Linux
Monte un sistema de archivos EFS en varias instancias EC2 y funciones Lambda, configure los modos de rendimiento y transferencia y controle el acceso con grupos de seguridad
EFS: almacenamiento de archivos compartido para Linux es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué es Amazon EFS?
Amazon Elastic File System (EFS) es un sistema de archivos POSIX compartido, elástico y totalmente administrado que puede ser montado simultáneamente por miles de instancias EC2, funciones de Lambda y contenedores de ECS/EKS. A diferencia de EBS (que se asocia a una sola instancia), EFS proporciona un sistema de archivos compartido en el que todos los clientes conectados ven los mismos archivos en tiempo real. La capacidad aumenta y disminuye automáticamente: nunca es necesario aprovisionar el almacenamiento por adelantado. EFS es ideal para la gestión de contenido, repositorios de código compartidos, directorios personales y análisis de datos.
Clases de almacenamiento de EFS
EFS ofrece dos clases de almacenamiento: EFS Standard (multi-AZ, máxima disponibilidad y latencia inferior a un milisegundo) y EFS One Zone (una sola AZ, un 47 % menos de coste y una resiliencia ligeramente menor). Dentro de cada nivel también existe una variante Infrequent Access (IA) que almacena los datos con un coste un 92 % menor que Standard para archivos que no se consultan con regularidad. La diferencia con S3 es que EFS es un sistema de archivos POSIX completo que sus aplicaciones pueden montar; no es un almacén de objetos.
# Create an EFS file system in Standard storage class
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--tags Key=Name,Value=SharedFileSystem
# One Zone (cheaper, single-AZ):
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--availability-zone-name us-east-1a \
--tags Key=Name,Value=SharedFileSystemOneZoneModos de rendimiento de EFS
EFS tiene dos modos de rendimiento: General Purpose (predeterminado y recomendado para la mayoría de las cargas de trabajo: menor latencia, ideal para servir contenido web, sistemas de gestión de contenido y directorios personales) y Max I/O (diseñado para cargas de trabajo masivamente paralelas con miles de conexiones simultáneas, a cambio de una latencia ligeramente mayor; ideal para big data y procesamiento multimedia). El modo de rendimiento se establece al crear el sistema de archivos y no se puede cambiar después de su creación. En el examen SAA-C03, elija Max I/O solo cuando necesite explícitamente miles de conexiones paralelas.
# Create EFS with Max I/O for highly parallel workloads
aws efs create-file-system \
--performance-mode maxIO \
--throughput-mode provisioned \
--provisioned-throughput-in-mibps 1024 \
--encrypted
# Note: Max I/O mode is NOT compatible with Elastic throughput mode
# It must use Provisioned or Bursting throughputModos de rendimiento de EFS
EFS admite tres modos de rendimiento: Elastic (ajusta automáticamente el rendimiento al alza o a la baja según la carga de trabajo; recomendado para la mayoría de los casos de uso y facturado por GB transferido), Bursting (el rendimiento escala según el tamaño del almacenamiento, y acumula y consume créditos de ráfaga como las instancias T de EC2; nivel base gratuito) y Provisioned (usted especifica un rendimiento fijo independientemente del tamaño del almacenamiento; resulta útil cuando necesita un rendimiento constante superior al que ofrece Bursting). El modo Elastic es el predeterminado moderno y elimina la necesidad de planificar la capacidad de rendimiento.
# Migrate an existing EFS from Bursting to Elastic throughput
aws efs update-file-system \
--file-system-id fs-0abc1234def567890 \
--throughput-mode elastic
# Check current throughput mode and performance mode
aws efs describe-file-systems \
--file-system-id fs-0abc1234def567890 \
--query 'FileSystems[].{ThroughputMode:ThroughputMode,PerfMode:PerformanceMode,SizeBytes:SizeInBytes.Value}'Puntos de montaje y grupos de seguridad
Para acceder a un sistema de archivos EFS desde una instancia de EC2, debe crear un mount target en cada subred (AZ) donde se ejecuten sus instancias. En EFS Standard, debe crear un punto de montaje en cada AZ de su VPC; las instancias de EC2 se conectan al punto de montaje de su propia AZ para obtener la menor latencia. Los puntos de montaje tienen security groups que deben permitir tráfico NFS (puerto 2049 TCP) procedente del grupo de seguridad de la instancia. Sin esta regla de entrada, las operaciones de montaje agotarán el tiempo de espera.
# Create a mount target in each AZ
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-aaa111 \
--security-groups sg-efsnfs
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-bbb222 \
--security-groups sg-efsnfs
# The EFS security group needs: Inbound TCP 2049 from instance SGMontaje de EFS en EC2 Linux
La forma recomendada de montar EFS en EC2 es mediante el Amazon EFS Mount Helper (paquete amazon-efs-utils), que admite el cifrado TLS en tránsito y la reconexión automática. El montaje se realiza mediante el ID del sistema de archivos en lugar de la dirección IP, para que DNS resuelva automáticamente el punto de montaje de la AZ más cercana. Para realizar montajes persistentes que sobrevivan a los reinicios, añada la entrada de montaje a /etc/fstab usando la opción _netdev, a fin de garantizar que la red esté disponible antes del montaje.
# Install the EFS mount helper
sudo yum install -y amazon-efs-utils
# Mount with TLS encryption in transit
sudo mkdir /mnt/efs
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Persistent mount in /etc/fstab
# fs-0abc1234def567890:/ /mnt/efs efs defaults,_netdev,tls 0 0
# Verify mount
df -h /mnt/efsPuntos de acceso de EFS
Los EFS Access Points son puntos de entrada específicos de una aplicación a un sistema de archivos EFS que imponen un usuario POSIX, un grupo y un directorio raíz concretos para todas las conexiones que utilizan ese punto de acceso. Esto permite aislar entre sí varias aplicaciones en el mismo sistema de archivos: la aplicación A monta mediante el punto de acceso A y solo ve /data/app-a/, mientras que la aplicación B, que usa el punto de acceso B, solo ve /data/app-b/. Los puntos de acceso son la forma recomendada de conceder a las funciones de Lambda, las tareas de ECS y los pods de EKS un acceso aislado a sistemas de archivos EFS compartidos.
# Create an EFS Access Point for an application
aws efs create-access-point \
--file-system-id fs-0abc1234def567890 \
--posix-user Uid=1001,Gid=1001 \
--root-directory Path=/data/app-a,CreationInfo={OwnerUid=1001,OwnerGid=1001,Permissions=755} \
--tags Key=App,Value=app-a
# Mount using the access point
sudo mount -t efs \
-o tls,accesspoint=fsap-0abc1234def567890 \
fs-0abc1234def567890:/ /mnt/app-aIntelligent-Tiering y ciclo de vida de EFS
Intelligent-Tiering de EFS mueve automáticamente los archivos entre las clases de almacenamiento Standard y Standard-IA (acceso poco frecuente) según los patrones de acceso. Puede configurar una política de ciclo de vida; por ejemplo, mover los archivos a IA después de 30 días sin acceso. Cuando se vuelve a acceder a un archivo en IA, se mueve automáticamente a Standard. La recuperación desde IA tiene un cargo de recuperación por GB, pero el almacenamiento cuesta considerablemente menos. Esto es similar a S3 Intelligent-Tiering y elimina la necesidad de gestionar manualmente la ubicación de los archivos.
# Enable lifecycle management (move to IA after 14 days)
aws efs put-lifecycle-configuration \
--file-system-id fs-0abc1234def567890 \
--lifecycle-policies '[
{"TransitionToIA": "AFTER_14_DAYS"},
{"TransitionToPrimaryStorageClass": "AFTER_1_ACCESS"}
]'
# Check current lifecycle configuration
aws efs describe-lifecycle-configuration \
--file-system-id fs-0abc1234def567890EFS con Lambda y contenedores
Las funciones de Lambda pueden montar sistemas de archivos EFS para compartir archivos de modelos grandes, datos persistentes o configuraciones entre invocaciones, superando el límite de 512 MB-10 GB de /tmp. Las tareas de ECS y EKS montan EFS mediante solicitudes de volúmenes persistentes usando el EFS CSI driver. La función de Lambda o el contenedor deben encontrarse en una VPC que tenga un punto de montaje, y el grupo de seguridad de EFS debe permitir tráfico NFS entrante desde el grupo de seguridad de la VPC de Lambda o del contenedor. EFS + Lambda es un patrón habitual para compartir modelos de ML entrenados entre instancias de funciones.
# Lambda function with EFS mount (CloudFormation excerpt)
# Resources:
# MyFunction:
# Type: AWS::Lambda::Function
# Properties:
# VpcConfig:
# SubnetIds: [subnet-aaa]
# SecurityGroupIds: [sg-lambda]
# FileSystemConfigs:
# - Arn: arn:aws:elasticfilesystem:us-east-1:111122223333:access-point/fsap-0abc
# LocalMountPath: /mnt/models
# In function code:
# import os
# model_path = '/mnt/models/my-model.pkl'
# with open(model_path, 'rb') as f:
# model = pickle.load(f)EFS frente a EBS: diferencias clave para el examen
El examen SAA-C03 suele pedirle que elija entre EFS y EBS. EFS: sistema de archivos POSIX compartido, se monta simultáneamente en varias instancias de EC2, capacidad elástica, solo Linux (NFS), accesible desde Lambda y contenedores, y mayor coste por GB. EBS: dispositivo de bloques, se conecta a una sola instancia de EC2 (excepto io1/io2 Multi-Attach), tamaño aprovisionado fijo, compatible con Linux y Windows, no accesible de forma nativa desde Lambda y con menor coste por GB. Si el escenario indica que «varias instancias deben compartir los mismos archivos», la respuesta es EFS.
Cifrado de EFS
EFS admite cifrado en reposo (se habilita al crear el sistema de archivos mediante una clave de KMS y no se puede cambiar después de la creación) y cifrado en tránsito (cifrado TLS al usar el asistente de montaje de EFS con la opción tls). AWS recomienda habilitar ambos. Puede exigir el cifrado en tránsito mediante una resource-based policy de EFS que deniegue el montaje sin TLS al requerir las condiciones elasticfilesystem:ClientRootAccess y elasticfilesystem:ClientWrite.
# Create an EFS file system with encryption at rest
aws efs create-file-system \
--encrypted \
--kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID
# Mount with TLS to encrypt in transit
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Deny unencrypted mounts via EFS resource policy (condition)
# Condition: elasticfilesystem:AccessedViaMountTarget = true
# and aws:SecureTransport = trueComprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido que EFS es un sistema de archivos POSIX compartido que se puede montar simultáneamente en miles de instancias y funciones de Lambda con capacidad elástica; los Access Points proporcionan aislamiento por aplicación con un usuario POSIX y un directorio raíz impuestos; e Intelligent-Tiering mueve automáticamente los archivos a los que se accede con poca frecuencia a una clase de almacenamiento IA de menor coste. A continuación, veremos FSx for Windows File Server y Lustre para cargas de trabajo especializadas.
Preguntas frecuentes
¿La lección «EFS: almacenamiento de archivos compartido para Linux» es gratis?
Sí — el texto completo de «EFS: almacenamiento de archivos compartido para Linux» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «EFS: almacenamiento de archivos compartido para Linux»?
Monte un sistema de archivos EFS en varias instancias EC2 y funciones Lambda, configure los modos de rendimiento y transferencia y controle el acceso con grupos de seguridad Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «EFS: almacenamiento de archivos compartido para Linux»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Tipos de volúmenes EBS: gp3, io2, st1, sc1
- Snapshots, cifrado y RAID de EBS
- EFS: almacenamiento de archivos compartido para Linux
- FSx: servidor de archivos de Windows y Lustre