EFS
📘 ¿Qué es Amazon EFS?
Amazon EFS es un sistema de archivos elástico y completamente administrado que se monta simultáneamente en varias instancias EC2 (u otros servicios) a través del protocolo NFS (Network File System).
-
Tipo: Servicio de almacenamiento en red (NAS).
-
Ideal para: Workloads que requieren un sistema de archivos compartido entre múltiples servidores.
-
Compatible con: EC2, ECS (con Fargate), Lambda, y más.
🧩 Características clave
| Característica | Descripción |
|---|---|
| Totalmente administrado | No requiere administración de servidores o sistemas de archivos. |
| Elástico | Escala automáticamente a medida que se añaden/eliminan archivos. |
| Alta disponibilidad | Replicado automáticamente en varias AZs (si usas modo regional). |
| Multi-Attach | Puede montarse en múltiples instancias simultáneamente. |
| Protocolo NFSv4.1/v4.2 | Compatible con clientes estándar NFS. |
| Cifrado | Soporta cifrado en reposo (KMS) y en tránsito (TLS). |
| Integración VPC | Montaje a través de interfaces de red dentro de una VPC. |
🧱 Tipos de rendimiento en EFS
| Modo de rendimiento | Descripción |
|---|---|
| General Purpose (por defecto) | Para cargas de trabajo comunes (web, CMS, desarrollo, etc). |
| Max I/O | Para cargas altamente paralelas (Big Data, análisis). |
💸 Modelos de almacenamiento
| Modelo | Descripción |
|---|---|
| Standard | Alta disponibilidad y rendimiento, replicado entre AZs. |
| Infrequent Access (EFS-IA) | Menor costo para archivos accedidos con poca frecuencia. |
🧠 Puedes configurar reglas de lifecycle management para mover archivos automáticamente de Standard a IA después de cierto tiempo sin acceso.
⚙️ EFS vs. otros almacenamientos
| Característica | EFS | EBS | S3 |
|---|---|---|---|
| Tipo | Sistema de archivos compartido | Disco en bloque | Almacenamiento de objetos |
| Conexión | Múltiples instancias | Una instancia a la vez | HTTP/REST |
| Protocolos | NFS | SATA/NVMe | API HTTP (SDK, CLI) |
| Casos de uso | Compartido, web, home dirs | DBs, sistemas operativos | Backup, distribución, media |
🔌 Montaje de EFS
En EC2 (Linux)
sudo yum install -y amazon-efs-utils
sudo mkdir /mnt/efs
sudo mount -t efs fs-xxxxxxxx:/ /mnt/efs
O usando el helper:
sudo mount -t efs -o tls fs-xxxxxxxx:/ /mnt/efs
📌 Requiere que la instancia EC2 esté en una subred con conectividad al Mount Target de EFS.
🛡️ Seguridad y control de acceso
-
Mount Targets: Puntos de entrada de red en cada AZ.
-
Seguridad de red: Controlada por grupos de seguridad y subredes VPC.
-
IAM Policies: Para controlar acceso al API de EFS.
-
POSIX permissions (chown/chmod): Control a nivel de sistema de archivos.
-
Cifrado en tránsito: Usando TLS/NFS.
-
Cifrado en reposo: Usando AWS KMS.
🧪 Casos de uso comunes
| Caso de uso | Beneficio de EFS |
|---|---|
| Aplicaciones web | Compartición de archivos entre instancias sin necesidad de sincronización. |
| Entornos de desarrollo | Permite guardar y compartir código y datos. |
| CMS (WordPress, Joomla) | Requieren almacenamiento compartido y persistente. |
| Home directories | Almacenamiento para múltiples usuarios de forma compartida. |
| CI/CD y compilación | Requiere alta disponibilidad y acceso simultáneo. |
| Machine Learning / HPC | Acceso paralelo a datasets. |
🔁 Resiliencia y backups
-
Alta disponibilidad regional: Se replica entre zonas de disponibilidad.
-
AWS Backup: Permite automatizar respaldos de EFS.
-
Durabilidad: Diseñado para el 99.999999999% (11 nueves) de durabilidad.
📈 Monitoreo
-
CloudWatch: Métricas de uso, throughput, IOPS, burst credit balance.
-
CloudTrail: Audita operaciones sobre EFS.
-
Logs opcionales: Accesos, montajes, errores.
🧾 Costos
| Factor de costo | Detalle |
|---|---|
| Almacenamiento estándar | Precio por GB por mes. |
| EFS Infrequent Access | Menor costo, pero con tarifa por acceso. |
| Solicitudes de acceso | Tarifa por cada operación de lectura/escritura en IA. |
| Backup y Data transfer | Se cobra por backup con AWS Backup y por transferencia entre regiones. |
🧠 Puedes optimizar costos activando el modo IA + lifecycle policy.
🛠️ Buenas prácticas
-
Usa lifecycle policies para mover archivos poco usados a EFS-IA.
-
Monta EFS usando
efs-utilscon TLS activado. -
Asegúrate de configurar correctamente los grupos de seguridad y mount targets.
-
Revisa los límites por cuenta, especialmente para mount targets.
-
Usa AWS Backup para snapshots periódicos.
-
Controla accesos con IAM y POSIX.
🎓 Preguntas tipo examen (ej. SAA-C03)
-
¿Qué servicio AWS ofrece un sistema de archivos compartido y escalable en múltiples instancias EC2?
- ✅ Amazon EFS
-
¿Qué protocolo usa EFS para la comunicación con instancias?
- ✅ NFSv4.1/v4.2
-
¿Cuál es la mejor opción para compartir archivos entre múltiples contenedores ECS en Fargate?
- ✅ Amazon EFS