¿Qué es AWS S3?
Amazon S3 (Simple Storage Service) es un servicio de almacenamiento de objetos diseñado para almacenar y recuperar cualquier cantidad de datos desde cualquier lugar en Internet. Es uno de los servicios fundamentales de AWS.
Características principales
1. Durabilidad y Disponibilidad
- Durabilidad: 99.999999999% (11 nueves)
- Disponibilidad: 99.99%
- Replicación automática entre múltiples zonas de disponibilidad
2. Escalabilidad
- Capacidad virtualmente ilimitada
- Sin necesidad de provisionar capacidad
- Escala automáticamente según demanda
3. Seguridad
- Cifrado en tránsito (SSL/TLS)
- Cifrado en reposo (SSE-S3, SSE-KMS)
- Control de acceso granular (IAM, Bucket Policies, ACLs)
- Versionado de objetos
Conceptos clave
Buckets
Contenedor para objetos almacenados en S3:
Objetos
Archivos y sus metadatos almacenados en S3:
Clases de almacenamiento
| Clase | Uso | Costo | Disponibilidad |
|---|---|---|---|
| Standard | Datos frecuentes | Alto | 99.99% |
| Intelligent-Tiering | Acceso variable | Variable | 99.9% |
| Standard-IA | Acceso poco frecuente | Medio | 99.9% |
| One Zone-IA | Datos no críticos | Bajo | 99.5% |
| Glacier | Archivo largo plazo | Muy bajo | 99.99% |
| Glacier Deep Archive | Archivo muy largo plazo | Mínimo | 99.99% |
Casos de uso
1. Hosting de sitios web estáticos
Perfecto para sitios generados con Hugo, Jekyll, etc:
2. Backup y archivo
3. Data Lake
Almacenamiento centralizado para analytics:
4. Distribución de contenido
Combinado con CloudFront:
- Imágenes
- Videos
- Descargas de software
- Actualizaciones de aplicaciones
Seguridad y permisos
IAM Policies
Bucket Policy
Versionado
Protección contra eliminación accidental:
Lifecycle Policies
Automatizar transiciones entre clases de almacenamiento:
Replicación
Cross-Region Replication (CRR)
Eventos y notificaciones
Trigger acciones basadas en eventos S3:
Eventos disponibles:
s3:ObjectCreated:*s3:ObjectRemoved:*s3:ObjectRestore:*s3:Replication:*
Monitoreo y logs
Server Access Logs
Métricas de CloudWatch
Métricas automáticas:
- BucketSizeBytes
- NumberOfObjects
- AllRequests
- GetRequests
- PutRequests
Optimización de costos
1. Usar clases de almacenamiento apropiadas
2. Implementar Lifecycle Policies
Mover automáticamente objetos antiguos a clases más baratas.
3. Eliminar versiones antiguas
4. Comprimir archivos
Reducir tamaño de datos almacenados:
Mejores prácticas
- ✅ Habilitar versionado para datos críticos
- ✅ Usar cifrado (SSE-S3 o SSE-KMS)
- ✅ Implementar Lifecycle Policies para optimizar costos
- ✅ Configurar replicación para disaster recovery
- ✅ Habilitar MFA Delete para buckets críticos
- ✅ Usar IAM roles en lugar de access keys
- ✅ Monitorear con CloudWatch y CloudTrail
- ✅ Bloquear acceso público por defecto
Integración con CloudFront
Mejorar performance y seguridad:
Comandos útiles
Límites
- Tamaño máximo de objeto: 5 TB
- Tamaño máximo PUT: 5 GB (usar multipart upload para archivos mayores)
- Número de buckets por cuenta: 100 (soft limit, se puede aumentar)
- Sin límite de objetos por bucket
Comparación con otros servicios
| Servicio | Uso | Acceso | Costo |
|---|---|---|---|
| S3 | Object storage | HTTP/API | $$ |
| EBS | Block storage para EC2 | Attached | $$$ |
| EFS | File system compartido | NFS | $$$$ |
| Glacier | Archive a largo plazo | Retrieval time | $ |
Conceptos Relacionados
- Cloud Security - Concepto relacionado
- Devops - Concepto relacionado
- Secops - Concepto relacionado
- Iac - Concepto relacionado
- Gitlab - Concepto relacionado
- Container Management - Concepto relacionado
- Siem - Concepto relacionado
- Soar - Concepto relacionado
- Registros - Concepto relacionado
- Dashboards - Concepto relacionado
- Métricas - Concepto relacionado
- Ciso - Concepto relacionado
Referencias
Herramientas útiles
- AWS CLI: Cliente de línea de comandos
- s3cmd: Cliente alternativo
- CloudBerry: Cliente GUI
- Cyberduck: Cliente FTP/SFTP/S3
- Terraform: IaC para S3