0% encontró este documento útil (0 votos)
4 vistas8 páginas

Introducción a Amazon S3 y Buckets

módulo 3 del curso de AWS Amazon web service traducido al español.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas8 páginas

Introducción a Amazon S3 y Buckets

módulo 3 del curso de AWS Amazon web service traducido al español.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 3: Desarrollo de Soluciones de

Almacenamiento
Sección 1: Introducción
Requisito del negocio del café
Sofía ya eligió un entorno de desarrollo y está lista para comenzar a construir. Quiere crear
un sitio web de prueba de concepto para el café sin exponerlo todavía al mundo exterior.
Sofía planea usar este sitio para mostrarle a Frank y Martha cómo un sitio web podría
exhibir visualmente la oferta del café.

Amazon S3 como parte del desarrollo de una aplicación en la nube


El diagrama de esta diapositiva brinda una visión general de la aplicación que construirás en
los laboratorios de este curso. Las partes resaltadas son relevantes para este módulo.
Como se muestra en el diagrama, alojarás un sitio web estático con Amazon S3. El bucket
estará protegido con una política de bucket que limitará el origen de las solicitudes.

Sección 2: Introducción a Amazon S3


Amazon S3
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos
que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento.

 Diseñado para un 99.999999999 % (11 nueves) de durabilidad.


 Proporciona funciones de gestión fáciles de usar.
 Puede responder a activadores de eventos.

Cuando las aplicaciones generan grandes volúmenes de datos, los desarrolladores


necesitan servicios de almacenamiento diseñados para ofrecer almacenamiento
prácticamente ilimitado, alta durabilidad, disponibilidad, rendimiento y seguridad.

Amazon S3 permite almacenar grandes cantidades de datos y puede usarse como solución
de almacenamiento de objetos para copias de seguridad, datos de dispositivos IoT,
repositorios de big data y más.

La durabilidad de 11 nueves significa que, si almacenas 10.000.000 de objetos en Amazon


S3, en promedio perderías solo uno cada 10.000 años.

Puedes administrar Amazon S3 desde la consola o de forma programática, configurando


controles de acceso detallados para objetivos de negocio o requisitos de cumplimiento.

Amazon S3 también puede configurarse para generar notificaciones de eventos (por


ejemplo, cuando se crea, elimina o restaura un objeto, o cuando ocurre un evento de
replicación). Estas notificaciones pueden integrarse con AWS Lambda, Amazon SNS o
Amazon SQS.
Casos de uso de Amazon S3

 Almacenamiento y distribución de contenido.


 Copia de seguridad, restauración y archivado.
 Data lakes y análisis de big data.
 Recuperación ante desastres (DR).
 Hosting de sitios web estáticos.

Ejemplos:

 Puedes almacenar de forma segura contenido estático (imágenes, videos, música) en


Amazon S3 y distribuirlo directamente o mediante CloudFront.
 Respaldar datos y aplicar políticas de ciclo de vida para archivar información poco
usada en Amazon S3 Glacier.
 Crear un data lake, es decir, un repositorio centralizado de datos estructurados y no
estructurados a cualquier escala, que permite análisis y machine learning.
 Implementar recuperación ante desastres usando la infraestructura global de
Amazon S3 y replicación entre regiones (CRR).
 Alojar un sitio web estático (contenido fijo con posible uso de scripts del lado del
cliente). Amazon S3 no admite procesamiento del lado del servidor.

Componentes de Amazon S3

 Bucket: Contenedor para objetos. Organiza el espacio de nombres de Amazon S3,


define la cuenta responsable de los costos y cumple un rol en el control de acceso.
Cada bucket es regional y tiene un endpoint específico:
[Link]
 Objeto: Unidad fundamental almacenada en Amazon S3. Puede ser cualquier archivo
(texto, video, foto, binario). Incluye datos y metadatos (pares nombre-valor).
Ejemplo de objeto:
[Link]
 Clave de objeto (object key): Identificador único dentro del bucket. Cada objeto
tiene una sola clave.

Los objetos nunca abandonan la región en la que fueron creados, salvo que se transfieran
explícitamente.

Sección 3: Creación de Buckets en S3


Reglas para nombres de buckets

 Deben ser únicos globalmente.


 Longitud entre 3 y 63 caracteres.
 Solo se permiten letras minúsculas, números y guiones (-).
 No se permiten mayúsculas ni guiones bajos (_).
Una vez creado el bucket, el nombre no puede cambiarse. Para asegurar unicidad, puedes
añadir la fecha, nombre de aplicación o un número aleatorio.

Regiones de buckets en Amazon S3


Al crear un bucket, debes especificar la región. Factores a considerar:

 Latencia.
 Costos.
 Requisitos regulatorios.

Una vez creado el bucket, no puedes cambiar la región.

Acceso a buckets: URLs

 Virtual-host-style URL: El nombre del bucket forma parte del dominio.


o Estructura:
[Link]
o Ejemplo:
[Link]
 Hosting de sitio web estático:
o Estructura:
[Link]
o Ejemplo:
[Link]

Estructura de carpetas en buckets: Uso de prefijos


Bucket: DOC-EXAMPLE-BUCKET

Ejemplo de objetos:

 2021/DOC-EXAMPLE-BUCKET/english/[Link]
 2021/DOC-EXAMPLE-BUCKET/english/[Link]
 2021/DOC-EXAMPLE-BUCKET/math/[Link]
 2021/DOC-EXAMPLE-BUCKET/math/[Link]
 2021/DOC-EXAMPLE-BUCKET/[Link]

Si especificas el prefijo 2021/DOC-EXAMPLE-BUCKET/math, obtendrás solo:

 2021/DOC-EXAMPLE-BUCKET/math/[Link]
 2021/DOC-EXAMPLE-BUCKET/math/[Link]

En Amazon S3, los objetos se organizan en buckets. Para simplificar, admite el concepto de
“carpetas” a través de prefijos compartidos. Cuando creas una carpeta, la consola de
Amazon S3 crea un objeto con el nombre seguido de una barra (/), y lo muestra como
carpeta.
Sección 4: Trabajo con Objetos en S3
Metadatos de objetos

Los objetos consisten en datos y metadatos.


Los metadatos de objetos son un conjunto de pares clave-valor que proporcionan
información adicional sobre el objeto.

Existen dos tipos:

 Metadatos definidos por el sistema


o Son gestionados por Amazon S3.
o Incluyen: fecha de creación, tamaño del objeto, versión del objeto.
o Algunos pueden modificarse (por ejemplo, clase de almacenamiento,
configuración de cifrado del lado del servidor).
 Metadatos definidos por el usuario
o Son asignados por el usuario al objeto.
o Se agregan al momento de subir el objeto o después.
o Deben comenzar con el prefijo x-amz-meta-.
o Ejemplo: x-amz-meta-alt-name.

Amazon S3 no procesa los metadatos definidos por el usuario; simplemente los almacena
junto con el objeto.

PUT Object

La operación PUT se utiliza para subir objetos a un bucket de S3.

 Requiere permisos de escritura.


 Siempre se escribe el objeto completo (no permite actualizaciones parciales).
 Tamaños:
o Hasta 5 GB: carga simple en una sola operación PUT.
o Más de 100 MB: recomendable usar carga multipart.
o Más de 5 GB: obligatorio usar carga multipart.
 Soporta cargas en paralelo para mejorar el rendimiento.
 Permite reanudar cargas fallidas.
 Tamaño máximo por objeto: 5 TB.

En la carga multipart, el objeto se divide en partes. Cada parte puede subirse en cualquier
orden, y si una falla, se puede reintentar sin afectar a las demás. Una vez subidas todas las
partes, Amazon S3 las ensambla en un solo objeto.
PUT Object: Ejemplo en código (Python Boto3)
import boto3
S3API = [Link]("s3", region_name="us-east-1")

bucket_name = "samplebucket"
filename = "/resources/website/[Link]"

S3API.upload_file(
filename,
bucket_name,
"[Link]",
ExtraArgs={'ContentType': "text/css", "CacheControl": "max-age=0"}
)

Explicación línea por línea:

 Se importa la librería Boto3 (SDK de AWS para Python).


 Se crea el cliente S3 en la región us-east-1.
 Se define el nombre del bucket.
 Se indica el archivo a subir.
 Se ejecuta la operación de carga con parámetros extra:
o ContentType: indica que es un archivo CSS.
o CacheControl: define cuánto tiempo lo almacenará en caché el navegador. Con
valor 0, los navegadores no lo almacenan (útil para archivos que cambian
seguido).

GET Object

La operación GET se usa para recuperar objetos de S3.

 Requiere permisos de lectura.


 Puede traer el objeto completo.
 También permite recuperar un rango de bytes (parcial), útil en conexiones lentas o
cuando la aplicación solo necesita parte de los datos.

Versionado (Versioning)

El versionado permite mantener múltiples variantes de un objeto dentro del mismo bucket.

 Cada objeto tiene un ID de versión.


 Una vez habilitado, el versionado solo puede suspenderse, pero no deshabilitarse.
 Ayuda a:
o Recuperarse de errores de usuario (sobrescrituras o eliminaciones
accidentales).
o Recuperarse de fallas de aplicaciones.
o Conservar y restaurar versiones anteriores.
 Los buckets con versionado soportan Object Lock, para impedir modificaciones o
eliminaciones.
Ejemplo:

 [Link] (versión ID = 111111)


 [Link] (versión ID = 121212)

Si se elimina una versión, solo se borra esa copia, no todas.

DELETE Object

 Con versionado deshabilitado:


o Eliminar un objeto lo borra de forma permanente.
 Con versionado habilitado:
o Si eliminas especificando solo la clave, S3 agrega un delete marker (marcador
de borrado).
o Ese marcador se convierte en la versión actual y el objeto devuelve un error
404 al intentar accederlo.
o Para eliminarlo totalmente, debes borrar cada versión por separado.

Sección 5: Protección de datos y gestión de accesos en Amazon S3


Cifrado de datos

 En tránsito:
o HTTPS con SSL/TLS.
o Cifrado del lado del cliente antes de la transmisión.
 En reposo:
o Cifrado del lado del cliente.
o Cifrado del lado del servidor:
 SSE-S3: claves gestionadas por Amazon S3, usa AES-256.
 SSE-KMS: claves gestionadas por AWS KMS (más control y auditoría).
 SSE-C: claves proporcionadas por el cliente, S3 gestiona solo el proceso
de cifrado/descifrado.

Nota: Los objetos ya existentes no se cifran automáticamente al habilitar el cifrado; solo los
que se carguen después.

Políticas de acceso: Identity-based y Resource-based

 Políticas basadas en identidad:


o Se aplican a usuarios, grupos y roles IAM.
 Políticas basadas en recursos:
o Se aplican directamente a los buckets u objetos.

Por defecto, todos los recursos de S3 son privados.


Listas de Control de Acceso (ACLs)

 Administran accesos a nivel de objeto o bucket.


 Útiles para conceder permisos básicos de lectura/escritura a otras cuentas AWS.
 Escenarios típicos:
o Objetos subidos por otra cuenta dentro de tu bucket (el dueño del bucket no
es dueño del objeto).
o Gestionar permisos de muchos objetos con una única política.

Políticas de Bucket

Son otro tipo de política basada en recursos.

 Permiten permisos más detallados que las ACL.


 Pueden reemplazar a las ACL en muchos casos.

Ejemplo:

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

Esta política permite acceso de lectura anónimo (s3:GetObject) a todos los objetos del bucket
DOC-EXAMPLE-BUCKET.

Presigned URLs

 Permiten acceso temporal a objetos (PUT o GET).


 Solo válidas hasta la fecha/hora de expiración (máximo 1 semana).
 Usan las credenciales y permisos del usuario que genera la URL.

Son útiles para dar acceso puntual a un archivo sin compartir credenciales de AWS.

CORS (Cross-Origin Resource Sharing)

Permite que aplicaciones web en un dominio accedan a recursos en otro dominio.

Ejemplo:

 Un sitio [Link] quiere usar un archivo desde un bucket en


[Link].
 Para que el navegador lo permita, el bucket debe tener habilitado CORS.
Configuración JSON de CORS:

[{
"AllowedOrigins": ["*"],
"AllowedMethods": ["GET"],
"MaxAgeSeconds": 3000,
"AllowedHeaders": ["*"]
}]

Con CORS en S3 puedes construir aplicaciones web que consuman directamente recursos
de tus buckets.

También podría gustarte