Configurando EFS compartido entre dos EC2 en distintas AZ
Quería que dos EC2, en dos Availability Zones distintas, leyeran y escribieran los mismos archivos en tiempo real — sin replicar nada a mano. Esto es EFS: un NFS administrado por AWS que montas en varias instancias a la vez.
1. Crea el filesystem
EFS → Create file system → Name: training-efs, VPC: training-vpc.
Customization: Storage class Standard, Throughput Elastic, encriptación at-rest activada.
En File system policy, marca "Enforce in-transit encryption for all clients" — obliga TLS en el tráfico NFS. Sin esto, los datos van en texto plano por la red.
Así queda el filesystem una vez creado:
2. Security Group para NFS
El mount target necesita recibir tráfico NFS en el puerto 2049 desde tus EC2.
EC2 → Security Groups → Create security group. Name: training-sg-efs.
Inbound rule: NFS, puerto 2049, source: SG de tus EC2.
Vuelve a EFS → tu filesystem → Network → edita los mount targets → asigna training-sg-efs.
3. Lanza dos EC2 en AZ diferentes
AZ-a y AZ-b. Ambas con IAM Role AmazonSSMManagedInstanceCore para acceder vía SSM Session Manager. OS: Amazon Linux 2.
4. Monta el filesystem en ambas
Vía SSM en cada EC2:
sudo dnf install -y amazon-efs-utils
sudo mkdir -p /mnt/efs
sudo mount -t efs fs-XXXXXXXX:/ /mnt/efs
El mount helper maneja TLS automáticamente (porque activamos "Enforce in-transit encryption").
5. Verifica que funciona
En EC2-1, escribe:
echo "escrito desde EC2-1" | sudo tee /mnt/efs/prueba.txt
Nota el df -h: EFS aparece con 8.0E de capacidad — es "elástico", crece con lo que uses. Pagas por GB/mes, no por capacidad reservada.
En EC2-2 (otra AZ), lee:
cat /mnt/efs/prueba.txt
# Resultado: escrito desde EC2-1
Mismo archivo, desde diferentes AZ, en tiempo real.
6. Monta persistente (opcional)
Para que monte al reiniciar:
echo "fs-XXXXXXXX:/ /mnt/efs efs defaults,_netdev 0 0" | sudo tee -a /etc/fstab
Eso es todo. Nada de replicación manual, nada de sincronizar carpetas — el mount target se encarga.