Primeros Pasos con Amazon S3: Conceptos Clave y Ejemplos


Introducción a Amazon S3

Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos altamente escalable, duradero y seguro proporcionado por AWS. Es ampliamente utilizado para almacenar datos, alojar sitios web estáticos, gestionar copias de seguridad e integrarse con aplicaciones nativas de la nube.

Características Clave de Amazon S3

  • Escalabilidad: Almacena cantidades ilimitadas de datos con escalado automático.
  • Durabilidad: La durabilidad del 99,999999999% (11 nueves) garantiza la seguridad de los datos.
  • Seguridad: Políticas IAM, cifrado y mecanismos de control de acceso.
  • Rentabilidad: Diferentes clases de almacenamiento optimizan los costos según los patrones de acceso.

Conceptos Clave de Amazon S3

1. Buckets (Contenedores)

Un bucket es un contenedor de nivel superior para almacenar objetos. Cada bucket tiene un nombre único globalmente en AWS. Defines la región del bucket y configuras los permisos al crearlo.

Creación de un Bucket S3 (AWS CLI)

aws s3 mb s3://mi-bucket-pochitos --region us-west-2

2. Objetos

Los objetos son las unidades de almacenamiento fundamentales en S3. Cada objeto consta de datos y metadatos, con una clave (nombre) única dentro de un bucket.

Carga de un Objeto (AWS CLI)

aws s3 cp myfile.txt s3://mi-bucket-pochitos/

3. Clases de Almacenamiento

Amazon S3 ofrece múltiples clases de almacenamiento para diferentes casos de uso:

  • S3 Standard: Acceso frecuente, alta disponibilidad.
  • S3 Intelligent-Tiering: Optimización automática de costos basada en el uso.
  • S3 Standard-IA (Acceso Infrecuente): Costo más bajo para datos a los que se accede raramente.
  • S3 Glacier & Glacier Deep Archive: Almacenamiento de bajo costo para datos de archivo.

Cambio de la Clase de Almacenamiento de un Objeto

aws s3 cp s3://mi-bucket-pochitos/myfile.txt s3://mi-bucket-pochitos/myfile.txt --storage-class STANDARD_IA

4. Permisos y Control de Acceso

La seguridad en S3 se gestiona a través de:

  • Políticas de Bucket: Reglas basadas en JSON para el control de acceso.
  • Políticas IAM: Definen los permisos de acceso para los usuarios de AWS.
  • Listas de Control de Acceso (ACLs): Método heredado para la gestión de permisos.

Ejemplo: Política de Acceso de Lectura Pública

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::mi-bucket-pochitos/*"
    }
  ]
}

5. Alojamiento de Sitios Web Estáticos

Amazon S3 puede alojar sitios web estáticos habilitando el alojamiento de sitios web en un bucket.

Habilitación del Alojamiento de Sitios Web Estáticos

aws s3 website s3://mi-bucket-pochitos/ --index-document index.html

Una vez habilitado, puedes acceder al sitio web a través de la URL de S3 proporcionada.


Ejemplo Práctico: Alojamiento de un Sitio Web Estático en S3

  1. Crea un bucket con acceso de lectura pública
  2. Carga tus archivos estáticos (HTML, CSS, JS) al bucket.
  3. Habilita el alojamiento de sitios web a través de la consola de S3 o CLI.
  4. Actualiza la política del bucket para permitir el acceso de lectura pública.

Cargar Archivos

aws s3 cp index.html s3://mi-bucket-pochitos/

Establecer la Política del Bucket

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::mi-bucket-pochitos/*"
    }
  ]
}

Ahora, tu sitio web es accesible a través de http://mi-bucket-pochitos.s3-website-us-west-2.amazonaws.com.


Conclusión

Amazon S3 es una solución de almacenamiento de objetos potente y flexible para diversas aplicaciones, desde el almacenamiento de archivos hasta el alojamiento de sitios web estáticos. Al comprender sus conceptos clave y utilizar ejemplos prácticos, puedes gestionar eficientemente los datos en la nube.

Scroll to Top