2 minute read

☁️ Día 16: ¡Almacenamiento infinito! Guarda tus archivos en la nube con Amazon S3

Hoy entramos en uno de los servicios más icónicos y antiguos de AWS: Amazon S3 (Simple Storage Service). S3 es un servicio de almacenamiento de objetos diseñado para guardar y recuperar cualquier cantidad de datos desde cualquier lugar. Olvídate de particiones de disco o límites de tamaño de servidor; S3 es virtualmente ilimitado.

¿Por qué usar Amazon S3?

  • Escalabilidad masiva: S3 escala automáticamente para manejar petabytes de datos.
  • Durabilidad extrema: Diseñado para ofrecer una durabilidad del 99.999999999% (los famosos “11 nueves”).
  • Accesibilidad: Cada archivo (objeto) tiene una URL única para ser accedido.
  • Versatilidad: Ideal para copias de seguridad, data lakes, archivos de aplicaciones o incluso sitios web.

🛠️ El Código (CloudFormation)

Vamos a crear tu primer Bucket (contenedor) utilizando infraestructura como código. En este ejemplo, configuraremos el bloqueo de acceso público para mantener tus archivos seguros por defecto.

1. Definición del Bucket de S3

MiPrimerBucketS3:
  Type: AWS::S3::Bucket
  Properties:
    BucketName: !Sub "mi-proyecto-bucket-${AWS::AccountId}" # Nombre único global
    PublicAccessBlockConfiguration:
      BlockPublicAcls: true
      BlockPublicPolicy: true
      IgnorePublicAcls: true
      RestrictPublicBuckets: true
    Tags:
      - Key: Environment
        Value: Dev

2. Salida (Output) para obtener el nombre del Bucket

Outputs:
  NombreDelBucket:
    Description: "Nombre del bucket creado"
    Value: !Ref MiPrimerBucketS3

📚 Conceptos Nuevos Explicados

1. Bucket

Es el contenedor fundamental en S3. Piensa en él como una “carpeta raíz”, pero con la particularidad de que su nombre debe ser único a nivel mundial en todo AWS.

2. Objetos

En S3 no guardamos “archivos” en un sistema de archivos tradicional, sino “objetos”. Un objeto se compone del archivo (datos), metadatos y una clave (Key), que es la ruta completa del archivo.

3. Espacio de nombres global (Namespace)

Como los buckets pueden accederse vía URL, el nombre que elijas no puede ser usado por ningún otro usuario de AWS en ninguna región del mundo.

4. Block Public Access

Es una capa de seguridad crítica. Por defecto, AWS recomienda bloquear todo acceso público para evitar que tus datos queden expuestos accidentalmente a internet.

🚀 Cómo Desplegarlo

Guarda el código anterior en un archivo llamado 16-s3-bucket.yaml y ejecuta el siguiente comando en tu terminal:

aws cloudformation create-stack \
  --stack-name Mi-Primer-S3 \
  --template-body file://24-s3-bucket.yaml

📈 Cómo probar tu primer Bucket

  1. Ve a la consola de S3 → Busca el bucket que acabas de crear.
  2. Haz clic en Upload (Cargar) y sube cualquier imagen o archivo de texto.
  3. Una vez subido, haz clic en el nombre del archivo para ver sus propiedades.
  4. Intenta abrir la Object URL. Verás un error de “Access Denied” (¡esto es correcto! Tu bucket es privado y seguro).

¡Felicidades! Tienes tu primer contenedor de objetos en la nube.

📂 Código Adjunto

Puedes encontrar el template de CloudFormation para crear tu bucket aquí: Ver archivo en GitHub


🎥 Video Tutorial

Mira el proceso paso a paso en video:


💡 Próximos pasos

  • Día 17: Clases de almacenamiento: Aprende a ahorrar dinero eligiendo el nivel de almacenamiento correcto (Standard vs Glacier).