certmundo.
es‑mx

7 min de lectura

¿Cómo guardar archivos en la nube con Amazon S3?

Amazon S3 (Simple Storage Service) es el servicio de almacenamiento en la nube más usado del mundo, diseñado para guardar cualquier tipo de archivo de forma segura y escalable.

El problema de guardar archivos en un servidor normal

Imagina que trabajas en el equipo de tecnología de Liverpool. Tienes miles de fotos de productos que necesitas mostrar en la página web. Si guardas esas fotos directamente en tu servidor EC2, tienes un problema enorme: si el servidor falla, pierdes todo. Si el tráfico aumenta, el servidor se satura. Y si necesitas más espacio, tienes que apagar todo para agregar un disco.

Eso es exactamente el problema que Amazon S3 resuelve. No es un servidor. Es un almacén infinito, resistente y siempre disponible.

El Sistema CUBETA-OBJETO: cómo piensa S3

S3 organiza todo usando dos conceptos clave. Aprenderlos bien desde ahora te ahorrará confusión más adelante.

El primero es el bucket (cubeta). Es como una carpeta raíz en la nube. Cada bucket tiene un nombre único en todo el mundo. No puedes llamar a tu bucket "fotos" si alguien más ya lo usó.

El segundo es el objeto. Es cualquier archivo que subes al bucket: una imagen, un PDF, un video, un archivo de texto. Cada objeto tiene una clave (su nombre y ruta dentro del bucket) y los datos del archivo.

Este sistema se llama almacenamiento de objetos. Es diferente a un disco duro normal. No tienes carpetas anidadas de verdad. Tienes objetos con rutas en su nombre, como productos/ropa/camisa-azul.jpg.

Cómo crear tu primer bucket en S3

Vamos paso a paso. Este es el proceso real en la consola de AWS.

Paso 1: Entra a S3 desde la consola Abre la consola de AWS y busca "S3" en la barra de búsqueda. Haz clic en el servicio.

Paso 2: Crea un nuevo bucket Haz clic en el botón naranja que dice "Crear bucket". Verás un formulario con varias opciones.

Paso 3: Elige el nombre y la región Escribe un nombre único. Por ejemplo: liverpool-productos-mx-2024. Usa solo letras minúsculas, números y guiones. Selecciona la región us-east-1 (Virginia del Norte) o us-west-2 si quieres experimentar. Para proyectos reales en México, us-east-1 tiene buen rendimiento y es de las regiones más económicas.

Paso 4: Bloqueo de acceso público Por defecto, AWS bloquea todo acceso público. Déjalo así por ahora. Más adelante aprenderás cuándo abrirlo.

Paso 5: Crea el bucket Haz clic en "Crear bucket". En segundos, tu bucket aparece en la lista. Así de rápido.

Sube tu primer archivo

Ahora que tienes el bucket, sube algo. Entra al bucket haciendo clic en su nombre. Verás un botón que dice "Cargar". Haz clic ahí.

Arrastra un archivo desde tu computadora o haz clic en "Agregar archivos". Puedes subir una imagen de prueba, un PDF o cualquier documento. Cuando estés listo, haz clic en "Cargar".

S3 procesa el archivo y lo muestra en la lista del bucket. Haz clic en el archivo para ver sus detalles. Verás una URL larga como esta:

https://liverpool-productos-mx-2024.s3.amazonaws.com/camisa-azul.jpg

Si intentas abrir esa URL en tu navegador ahora mismo, verás un error de acceso denegado. ¿Por qué? Porque el bucket es privado por defecto. Nadie puede ver tu archivo sin permiso.

Control de acceso: quién puede ver qué

Este es uno de los temas más importantes de S3. Controlar el acceso mal configurado ha causado filtraciones de datos en empresas grandes de todo el mundo.

Tienes tres formas principales de controlar el acceso:

1. Objeto público (para archivos que todos pueden ver)

Si quieres que una imagen de producto sea visible en tu sitio web, necesitas hacerla pública. Pero primero debes permitir el acceso público en el bucket.

Ve a la pestaña "Permisos" de tu bucket. Busca la sección "Bloquear acceso público" y haz clic en "Editar". Desmarca la primera opción y guarda los cambios. AWS te pedirá que escribas "confirmar" para asegurarse de que sabes lo que haces.

Luego, agrega una política de bucket. Haz clic en "Política de bucket" y pega esto:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::liverpool-productos-mx-2024/*"
    }
  ]
}

Esta política dice: cualquier persona (*) puede leer (GetObject) cualquier archivo del bucket. Perfecto para imágenes de catálogo público.

2. URL prefirmada (para archivos privados con acceso temporal)

Imagina que Bimbo tiene facturas PDF almacenadas en S3. No quiere que sean públicas, pero sí quiere que un proveedor específico las descargue durante 24 horas. Para eso existe la URL prefirmada (presigned URL).

Es una URL que incluye permisos temporales. Después de que expira el tiempo, la URL deja de funcionar. Esto es muy común en sistemas de facturación y documentos legales.

3. Acceso solo desde tu aplicación (con roles IAM)

Tu servidor EC2 puede leer y escribir archivos en S3 sin necesidad de contraseñas. Usas un Rol IAM que le da permisos al servidor. Así funciona en producción en empresas como FEMSA: el servidor tiene permiso, pero los usuarios externos no.

Clases de almacenamiento: paga solo por lo que necesitas

S3 no tiene un solo tipo de almacenamiento. Tiene varias clases con diferentes precios y velocidades de acceso.

Clase Uso ideal Costo aproximado
S3 Standard Archivos de acceso frecuente $0.023 USD por GB/mes
S3 Standard-IA Acceso poco frecuente $0.0125 USD por GB/mes
S3 Glacier Archivos históricos, backups $0.004 USD por GB/mes
S3 Intelligent-Tiering Cuando no sabes la frecuencia Variable automática

Por ejemplo, si tienes videos de capacitación que los empleados de Bimbo ven a diario, usa S3 Standard. Si tienes registros contables de hace tres años que el SAT podría pedir algún día, usa S3 Glacier. Así pagas mucho menos sin sacrificar la disponibilidad cuando la necesitas.

Errores comunes y cómo evitarlos

Error 1: Hacer público un bucket completo sin pensarlo Un error clásico es abrir acceso público a todo el bucket cuando solo necesitas exponer algunos archivos. Siempre pregúntate: ¿este archivo realmente necesita ser público? Las bases de datos, los archivos de configuración y los documentos internos nunca deben ser públicos.

Error 2: Usar nombres de bucket sin contexto Un bucket llamado datos o archivos es un problema. En equipos grandes, nadie sabe qué contiene. Usa nombres descriptivos como bimbo-facturas-proveedores-2024 o femsa-imagenes-campanas-mx.

Error 3: No activar el versionado S3 tiene una función llamada Versionado. Cuando está activa, cada vez que sobreescribes un archivo, S3 guarda la versión anterior. Esto te salva si borras algo por accidente. Actívalo desde la pestaña "Propiedades" del bucket. Es gratuito habilitarlo; solo pagas por el espacio de las versiones anteriores.

Error 4: Olvidar los costos de transferencia Subir archivos a S3 es gratuito. Pero descargar archivos hacia internet tiene un costo. Si tienes una app que sirve videos grandes a miles de usuarios en México, los costos de transferencia pueden crecer rápido. Para eso existe Amazon CloudFront, el servicio CDN de AWS, que reduce ese costo distribuyendo el contenido más cerca del usuario.

Un caso real: tienda en línea tipo Mercado Libre

Piensa en cómo funciona una plataforma de comercio electrónico. Cuando un vendedor sube la foto de su producto, la imagen va a S3. La URL de esa imagen se guarda en la base de datos. Cuando un comprador visita la página, el navegador carga la imagen directamente desde S3, sin saturar el servidor principal.

Eso reduce costos, mejora la velocidad y hace el sistema más robusto. Si el servidor principal falla, las imágenes siguen disponibles porque viven en un servicio completamente separado.

Así de poderoso es S3 en arquitecturas reales.

S3 es el disco duro de la nube, pero mucho mejor

S3 no es solo guardar archivos: es la base de una arquitectura escalable, segura y económica que separa el almacenamiento del procesamiento.

Puntos clave

  • Amazon S3 organiza todo en buckets (contenedores) y objetos (archivos). El nombre del bucket debe ser único en todo el mundo.
  • Por defecto, todos los archivos en S3 son privados. Debes activar explícitamente el acceso público o usar URLs prefirmadas para compartir archivos de forma temporal y controlada.
  • Las clases de almacenamiento de S3 (Standard, Standard-IA, Glacier) te permiten pagar según la frecuencia de acceso. Archivos históricos en Glacier cuestan hasta 80% menos que en Standard.
  • Activa el versionado en tus buckets desde el inicio. Si borras o sobreescribes un archivo por accidente, el versionado te permite recuperarlo sin pérdida de datos.
  • Nunca pongas archivos sensibles como configuraciones, contraseñas o bases de datos en un bucket público. Un bucket mal configurado puede exponer datos críticos de tu empresa o tus clientes.

Comparte esta lección:

¿Cómo guardar archivos en la nube con Amazon S3? | Introducción a AWS: Amazon Web Services desde cero | Certmundo