💾
Almacenamiento - S3, EBS, EFS
S3, EBS, EFS y Storage Gateway
⏱️ Tiempo estimado de lectura: 25 minutos
Amazon S3 - Simple Storage Service
S3 es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento.
Conceptos clave:
- Bucket: Contenedor de objetos con nombre globalmente único
- Object: Archivo almacenado (hasta 5TB por objeto)
- Key: Nombre único del objeto dentro del bucket
- Regiones: Los buckets se crean en una región específica
Características:
- Durabilidad del 99.999999999% (11 nueves)
- Disponibilidad del 99.99% (Standard)
- Versionado de objetos
- Cifrado en reposo y en tránsito
- Control de acceso granular
Conceptos clave:
- Bucket: Contenedor de objetos con nombre globalmente único
- Object: Archivo almacenado (hasta 5TB por objeto)
- Key: Nombre único del objeto dentro del bucket
- Regiones: Los buckets se crean en una región específica
Características:
- Durabilidad del 99.999999999% (11 nueves)
- Disponibilidad del 99.99% (Standard)
- Versionado de objetos
- Cifrado en reposo y en tránsito
- Control de acceso granular
Puntos Clave
- ✓ S3 es un almacén de objetos, no sistema de archivos
- ✓ Nombres de bucket deben ser únicos globalmente
- ✓ Objetos grandes usan multipart upload (>100MB recomendado)
- ✓ Strong read-after-write consistency desde dic 2020
- ✓ S3 no tiene límite de almacenamiento total
💻 Operaciones básicas en S3
# Crear bucket
aws s3 mb s3://mi-bucket-unico-12345
# Subir archivo
aws s3 cp archivo.txt s3://mi-bucket-unico-12345/
# Listar objetos
aws s3 ls s3://mi-bucket-unico-12345/
# Sincronizar directorio
aws s3 sync ./mi-carpeta s3://mi-bucket-unico-12345/carpeta/
# Habilitar versionado
aws s3api put-bucket-versioning \n --bucket mi-bucket-unico-12345 \n --versioning-configuration Status=Enabled Clases de Almacenamiento S3
S3 ofrece diferentes clases de almacenamiento para optimizar costos según patrones de acceso:
S3 Standard:
- Uso general, acceso frecuente
- Baja latencia, alto throughput
- Durabilidad 11 nueves, disponibilidad 99.99%
S3 Intelligent-Tiering:
- Mueve automáticamente objetos entre tiers según acceso
- Sin cargos de recuperación, pequeña cuota de monitoreo
- 4 tiers: Frequent, Infrequent, Archive, Deep Archive
S3 Standard-IA (Infrequent Access):
- Acceso menos frecuente pero rápido cuando se necesita
- Menor costo de almacenamiento, cargo por recuperación
- Min 30 días, min 128KB por objeto
S3 One Zone-IA:
- Como Standard-IA pero en una sola AZ
- 20% más barato que Standard-IA
- Disponibilidad 99.5%
S3 Glacier:
- Archivo a largo plazo, minutos a horas de recuperación
- Retrieval: Expedited (1-5 min), Standard (3-5 hrs), Bulk (5-12 hrs)
S3 Glacier Deep Archive:
- Almacenamiento más económico
- Recuperación: Standard (12 hrs), Bulk (48 hrs)
- Min 180 días de retención
S3 Standard:
- Uso general, acceso frecuente
- Baja latencia, alto throughput
- Durabilidad 11 nueves, disponibilidad 99.99%
S3 Intelligent-Tiering:
- Mueve automáticamente objetos entre tiers según acceso
- Sin cargos de recuperación, pequeña cuota de monitoreo
- 4 tiers: Frequent, Infrequent, Archive, Deep Archive
S3 Standard-IA (Infrequent Access):
- Acceso menos frecuente pero rápido cuando se necesita
- Menor costo de almacenamiento, cargo por recuperación
- Min 30 días, min 128KB por objeto
S3 One Zone-IA:
- Como Standard-IA pero en una sola AZ
- 20% más barato que Standard-IA
- Disponibilidad 99.5%
S3 Glacier:
- Archivo a largo plazo, minutos a horas de recuperación
- Retrieval: Expedited (1-5 min), Standard (3-5 hrs), Bulk (5-12 hrs)
S3 Glacier Deep Archive:
- Almacenamiento más económico
- Recuperación: Standard (12 hrs), Bulk (48 hrs)
- Min 180 días de retención
Puntos Clave
- ✓ Lifecycle policies automatizan transiciones entre clases
- ✓ Standard: acceso frecuente, IA: acceso ocasional, Glacier: archivo
- ✓ Intelligent-Tiering elimina necesidad de lifecycle policies
- ✓ One Zone-IA pierde datos si la AZ falla
- ✓ Glacier tiene cargos por recuperación según velocidad
Seguridad en S3
S3 ofrece múltiples capas de seguridad para proteger tus datos:
Control de acceso:
- IAM Policies: Controlan qué usuarios/roles pueden acceder a S3
- Bucket Policies: Políticas JSON a nivel de bucket (cross-account, público)
- ACLs: Control de acceso legacy (no recomendado)
- S3 Access Points: Simplifican acceso para aplicaciones específicas
Cifrado:
- En reposo (Server-Side):
- SSE-S3: AWS gestiona las claves (AES-256)
- SSE-KMS: AWS KMS gestiona las claves (auditoría, rotación)
- SSE-C: Cliente proporciona las claves
- En tránsito: HTTPS/TLS
- Client-Side: Cliente cifra antes de subir
Características adicionales:
- Versioning: Protege contra borrado accidental
- MFA Delete: Requiere MFA para borrar objetos
- Object Lock: WORM (write-once-read-many), compliance
- Pre-signed URLs: Acceso temporal a objetos privados
Control de acceso:
- IAM Policies: Controlan qué usuarios/roles pueden acceder a S3
- Bucket Policies: Políticas JSON a nivel de bucket (cross-account, público)
- ACLs: Control de acceso legacy (no recomendado)
- S3 Access Points: Simplifican acceso para aplicaciones específicas
Cifrado:
- En reposo (Server-Side):
- SSE-S3: AWS gestiona las claves (AES-256)
- SSE-KMS: AWS KMS gestiona las claves (auditoría, rotación)
- SSE-C: Cliente proporciona las claves
- En tránsito: HTTPS/TLS
- Client-Side: Cliente cifra antes de subir
Características adicionales:
- Versioning: Protege contra borrado accidental
- MFA Delete: Requiere MFA para borrar objetos
- Object Lock: WORM (write-once-read-many), compliance
- Pre-signed URLs: Acceso temporal a objetos privados
Puntos Clave
- ✓ Por defecto todos los buckets y objetos son privados
- ✓ Block Public Access debe estar habilitado (best practice)
- ✓ Bucket policies permiten acceso cross-account
- ✓ SSE-KMS permite auditoría de acceso a claves
- ✓ Pre-signed URLs expiran después del tiempo configurado
💻 Bucket Policy para acceso público de lectura
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mi-bucket-publico/*"
}
]
} 💻 Configuración de seguridad en S3
# Generar pre-signed URL (válida 1 hora)
aws s3 presign s3://mi-bucket/archivo-privado.pdf --expires-in 3600
# Habilitar cifrado por defecto
aws s3api put-bucket-encryption \n --bucket mi-bucket \n --server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "AES256"
}
}]
}' Amazon EBS - Elastic Block Store
EBS proporciona volúmenes de almacenamiento en bloque persistente para instancias EC2.
Tipos de volúmenes EBS:
SSD-backed:
- gp3 (General Purpose): Balance precio/rendimiento, 3000 IOPS base, hasta 16000 IOPS
- gp2: Generación anterior, IOPS escala con tamaño (3 IOPS/GB)
- io2 Block Express: Máximo rendimiento, hasta 256,000 IOPS, 99.999% durabilidad
- io1: Generación anterior de alto IOPS, hasta 64,000 IOPS
HDD-backed:
- st1 (Throughput Optimized): Big data, data warehouses, log processing. No boot volume
- sc1 (Cold HDD): Datos accedidos con poca frecuencia. Más económico. No boot volume
Características:
- Limitados a una AZ específica
- Pueden desmontarse y montarse en otra instancia (misma AZ)
- Snapshots permiten copia a otras regiones/AZ
- Cambio de tamaño/tipo en caliente
Tipos de volúmenes EBS:
SSD-backed:
- gp3 (General Purpose): Balance precio/rendimiento, 3000 IOPS base, hasta 16000 IOPS
- gp2: Generación anterior, IOPS escala con tamaño (3 IOPS/GB)
- io2 Block Express: Máximo rendimiento, hasta 256,000 IOPS, 99.999% durabilidad
- io1: Generación anterior de alto IOPS, hasta 64,000 IOPS
HDD-backed:
- st1 (Throughput Optimized): Big data, data warehouses, log processing. No boot volume
- sc1 (Cold HDD): Datos accedidos con poca frecuencia. Más económico. No boot volume
Características:
- Limitados a una AZ específica
- Pueden desmontarse y montarse en otra instancia (misma AZ)
- Snapshots permiten copia a otras regiones/AZ
- Cambio de tamaño/tipo en caliente
Puntos Clave
- ✓ gp3 es la recomendación por defecto para la mayoría de workloads
- ✓ io2 para bases de datos con requisitos de IOPS extremos
- ✓ HDD no pueden ser boot volumes
- ✓ EBS Multi-Attach permite hasta 16 instancias Nitro en misma AZ
- ✓ Delete on Termination: root=true, adicionales=false por defecto
Snapshots de EBS
Los snapshots son copias de seguridad incrementales de volúmenes EBS almacenadas en S3.
Características:
- Incrementales: Solo los bloques modificados se copian
- Almacenamiento: S3 (gestionado por AWS, no visible)
- Región: Los snapshots pertenecen a una región, pero pueden copiarse
- Restauración: Puedes crear volúmenes desde snapshots en cualquier AZ de la región
Mejores prácticas:
- No es necesario desmontar el volumen, pero recomendado para consistencia
- Primer snapshot es completo, siguientes son incrementales
- Borrar snapshot solo elimina datos no usados por otros snapshots
- Data Lifecycle Manager (DLM) automatiza creación/retención/borrado
Características avanzadas:
- Fast Snapshot Restore (FSR): Elimina latencia de inicialización
- Snapshot Archive: Tier económico (75% más barato), restauración 24-72 hrs
- Recycle Bin: Recupera snapshots borrados accidentalmente
Características:
- Incrementales: Solo los bloques modificados se copian
- Almacenamiento: S3 (gestionado por AWS, no visible)
- Región: Los snapshots pertenecen a una región, pero pueden copiarse
- Restauración: Puedes crear volúmenes desde snapshots en cualquier AZ de la región
Mejores prácticas:
- No es necesario desmontar el volumen, pero recomendado para consistencia
- Primer snapshot es completo, siguientes son incrementales
- Borrar snapshot solo elimina datos no usados por otros snapshots
- Data Lifecycle Manager (DLM) automatiza creación/retención/borrado
Características avanzadas:
- Fast Snapshot Restore (FSR): Elimina latencia de inicialización
- Snapshot Archive: Tier económico (75% más barato), restauración 24-72 hrs
- Recycle Bin: Recupera snapshots borrados accidentalmente
Puntos Clave
- ✓ Snapshots se pueden copiar entre regiones (DR, migración)
- ✓ Puedes crear AMIs desde snapshots de root volumes
- ✓ FSR tiene costo adicional pero elimina warming period
- ✓ DLM puede crear snapshots automáticos según schedule
- ✓ Recycle Bin retiene snapshots borrados por 1 día a 1 año
💻 Gestión de snapshots EBS
# Crear snapshot
aws ec2 create-snapshot \n --volume-id vol-0123456789abcdef0 \n --description "Backup diario DB producción"
# Copiar snapshot a otra región
aws ec2 copy-snapshot \n --source-region us-east-1 \n --source-snapshot-id snap-0123456789abcdef0 \n --region eu-west-1 \n --description "DR backup en EU"
# Crear volumen desde snapshot
aws ec2 create-volume \n --snapshot-id snap-0123456789abcdef0 \n --availability-zone us-east-1a \n --volume-type gp3 Amazon EFS - Elastic File System
EFS es un sistema de archivos NFS totalmente gestionado y escalable que puede ser montado por múltiples instancias EC2 simultáneamente.
Características:
- Multi-AZ: Los datos se replican automáticamente en múltiples AZ
- Escalado automático: Crece y se reduce automáticamente según uso
- Compatibilidad: Protocolo NFSv4.1, compatible con Linux
- Rendimiento: Dos modos: General Purpose (latencia baja) y Max I/O (alto throughput)
- Throughput: Bursting (escala con tamaño) o Provisioned (fijo)
Clases de almacenamiento:
- Standard: Acceso frecuente, múltiples AZ
- Infrequent Access (IA): Menor costo, cargo por acceso
- One Zone: Datos en una sola AZ (más económico)
- One Zone-IA: Combinación de One Zone + IA (mínimo costo)
Casos de uso:
- Content management y web serving
- Data analytics y procesamiento compartido
- Directorios home compartidos
- Ambientes de desarrollo compartidos
Características:
- Multi-AZ: Los datos se replican automáticamente en múltiples AZ
- Escalado automático: Crece y se reduce automáticamente según uso
- Compatibilidad: Protocolo NFSv4.1, compatible con Linux
- Rendimiento: Dos modos: General Purpose (latencia baja) y Max I/O (alto throughput)
- Throughput: Bursting (escala con tamaño) o Provisioned (fijo)
Clases de almacenamiento:
- Standard: Acceso frecuente, múltiples AZ
- Infrequent Access (IA): Menor costo, cargo por acceso
- One Zone: Datos en una sola AZ (más económico)
- One Zone-IA: Combinación de One Zone + IA (mínimo costo)
Casos de uso:
- Content management y web serving
- Data analytics y procesamiento compartido
- Directorios home compartidos
- Ambientes de desarrollo compartidos
Puntos Clave
- ✓ EFS solo compatible con Linux (no Windows)
- ✓ Más caro que EBS pero ofrece compartición multi-instancia
- ✓ Lifecycle policy mueve archivos a IA automáticamente
- ✓ EFS Access Points simplifican gestión de permisos
- ✓ Encryption at rest con KMS, encryption in transit con TLS
💻 Montar EFS en Linux
# Montar EFS en instancia EC2
sudo mkdir -p /mnt/efs
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 \n fs-0123456789abcdef.efs.us-east-1.amazonaws.com:/ /mnt/efs
# Agregar a /etc/fstab para montaje automático
echo "fs-0123456789abcdef.efs.us-east-1.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev 0 0" \n | sudo tee -a /etc/fstab