Qué es
Amazon Simple Storage Service (S3) guarda objetos (ficheros más sus metadatos) dentro de buckets, sin límite de capacidad total. Está diseñado para una durabilidad de 11 nueves (99,999999999 %) y ofrece consistencia fuerte de lectura tras escritura. Es la base de lagos de datos, copias de seguridad, sitios estáticos y casi cualquier arquitectura en AWS.
Conceptos clave
- Buckets: nombre único global, pero cada bucket vive en una región. Las "carpetas" son solo prefijos de la clave del objeto.
- Tamaño de objeto: hasta unos 50 TB (48,8 TiB). Un solo PUT admite hasta 5 GB; por encima es obligatoria la carga multiparte, recomendable ya desde unos 100 MB. Hasta hace poco el máximo era 5 TB, y algunas preguntas antiguas usan esa cifra.
- Clases de almacenamiento:
- Standard: acceso frecuente.
- Intelligent-Tiering: mueve los objetos de nivel según el uso; ideal si el patrón es desconocido.
- Standard-IA y One Zone-IA: acceso poco frecuente pero inmediato. One Zone-IA guarda los datos en una sola zona de disponibilidad (más barata, menos resiliente).
- Glacier Instant Retrieval: archivo con recuperación en milisegundos.
- Glacier Flexible Retrieval: archivo con recuperación de minutos a horas.
- Glacier Deep Archive: lo más barato; recuperación en horas.
- Express One Zone: latencia muy baja en una zona, para cargas intensivas.
- Reglas de ciclo de vida: transicionan objetos entre clases o los caducan.
- Versionado: conserva versiones anteriores y protege frente a borrados y sobrescrituras. Es necesario para la replicación y Object Lock.
- Replicación: entre regiones (CRR) o en la misma región (SRR).
- Object Lock: almacenamiento WORM (Write Once, Read Many: se escribe una vez y no se puede modificar) en modo governance o compliance, con retención legal.
- URLs prefirmadas: permiten subir o descargar un objeto concreto durante un tiempo limitado sin credenciales de AWS.
- Notificaciones de eventos: a Lambda, SQS (Simple Queue Service), SNS (Simple Notification Service) o EventBridge.
- Transfer Acceleration: acelera cargas lejanas usando la red perimetral de AWS.
Casos de uso típicos
- Ficheros de usuarios (fotos, vídeos, documentos) subidos con URLs prefirmadas.
- Lago de datos consultado con Athena, Glue o EMR (Elastic MapReduce).
- Copias de seguridad y archivo a largo plazo con Glacier.
- Sitio web estático, normalmente detrás de CloudFront.
- Fuente de documentos para una base de conocimiento de Amazon Bedrock (RAG).
Cuándo NO usarlo
- Como disco de un sistema operativo o de una base de datos: eso es EBS (Elastic Block Store).
- Como sistema de ficheros compartido con semántica POSIX (Portable Operating System Interface: estándar de ficheros y permisos tipo Unix): EFS (Elastic File System) o FSx.
- Para datos con muchas actualizaciones pequeñas de partes de un fichero: S3 reescribe el objeto entero.
Comparativa con servicios parecidos
| Necesidad | S3 | EBS | EFS |
|---|---|---|---|
| Tipo | Objetos | Bloques (disco) | Ficheros (NFS) |
| Acceso | API HTTP (HyperText Transfer Protocol: protocolo de la web) desde cualquier sitio | Una instancia (salvo multi-attach) | Muchas instancias a la vez |
| Alcance | Regional | Una zona de disponibilidad | Regional (o una zona) |
| Uso típico | Datos, medios, backups | Discos de EC2 (Elastic Compute Cloud) y bases de datos | Contenido compartido entre servidores |
Modelo de precios
Se paga por GB almacenado al mes según la clase, por peticiones (PUT, GET, LIST…), por recuperación de datos en las clases IA y Glacier, y por la transferencia de salida a internet. La entrada de datos es gratuita. También cuestan la replicación, Transfer Acceleration y algunas funciones de gestión. Con Requester Pays, quien descarga paga la transferencia.
Seguridad y alta disponibilidad
- Block Public Access activado por defecto; las ACL (Access Control List: lista de control de acceso) están desactivadas por defecto (Bucket owner enforced).
- Acceso con políticas IAM (Identity and Access Management) y bucket policies (por ejemplo, exigir TLS (Transport Layer Security: cifrado de las conexiones) con
aws:SecureTransporto limitar a un endpoint de VPC (Virtual Private Cloud)). - Cifrado en reposo siempre activo (SSE-S3 (Server-Side Encryption with S3 managed keys: cifrado en el servidor con claves que gestiona S3) por defecto). También SSE-KMS (Server-Side Encryption with KMS keys: cifrado en el servidor con claves de KMS), DSSE-KMS (Dual-layer Server-Side Encryption with KMS: doble capa de cifrado con claves de KMS) o SSE-C (Server-Side Encryption with Customer-provided keys: cifrado en el servidor con claves que aporta el cliente) con clave del cliente.
- Las clases regionales replican en al menos tres zonas de disponibilidad; One Zone y Express One Zone, en una sola.
- Versionado, MFA Delete, Object Lock y replicación para protegerse frente a errores y desastres.
Así lo uso en Kopi
Kopi tiene dos usos de S3. El frontend estático está en un bucket privado que solo
CloudFront puede leer (OAC). Los ficheros de los usuarios van a otro bucket con claves del tipo
media/{usuario}/{tipo}/{año}/{mes}/{uuid}. El navegador sube directamente con una
URL (Uniform Resource Locator: dirección web) prefirmada de una hora, así que ni la API (Application Programming Interface: interfaz para que los programas se comuniquen) ni Lambda ven el contenido. Una
notificación de evento dispara una Lambda con cada objeto nuevo para
reconciliarlo con DynamoDB. Así se registran también los ficheros que sube la aplicación de
escritorio directamente a S3.
Trampas de examen
- "Patrón de acceso desconocido o cambiante": Intelligent-Tiering.
- "Datos que se pueden regenerar" y "acceso poco frecuente": One Zone-IA.
- "Archivo con acceso en milisegundos": Glacier Instant Retrieval. "Lo más barato posible, recuperación en horas": Glacier Deep Archive.
- "WORM", "cumplimiento normativo" o "nadie puede borrar, ni el raíz": Object Lock en modo compliance.
- "Compartir un objeto temporalmente sin cuenta de AWS": URL prefirmada.
- La replicación exige versionado en origen y destino, y no replica los objetos existentes antes de activarla (para eso está S3 Batch Replication).
- Un sitio estático en S3 solo sirve HTTP; para HTTPS (HTTP Secure: HTTP cifrado con TLS) con dominio propio se pone CloudFront.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is Amazon S3?, documentación de AWS (consultada el 25/09/2026).
- Understanding and managing Amazon S3 storage classes, documentación de AWS (consultada el 25/09/2026).
- Amazon S3 multipart upload limits, documentación de AWS (consultada el 25/09/2026).
- Download and upload objects with presigned URLs, documentación de AWS (consultada el 25/09/2026).