- enero 27, 2023
- 0 Comments
- By j.lopez
Hoy vamos a realizar una introducción a Amazon Simple Storage Service (Amazon S3) uno de los muchos servicios de los que dispone AWS.
Aunque sea paradójico en un documento titulado que es Amazon S3, lo primero es aclarar que no es Amazon S3 y no es un servicio de alojamiento de archivos del tipo Dropbox, OneDrive o Google Drive, etc, ya que son servicios con una finalidad comercial diferente, que se asemejan más a Amazon Drive (aunque Drive está enfocado al almacenamiento multimedia para usuarios finales), por lo que si estás buscando una solución para guardar en la nube tus archivos personales Amazon S3 no es la mejor solución.
Amazon S3 es un servicio de almacenamiento de archivos (objetos heterogéneos). Y que quiere decir que es un sistema de almacenamiento de objetos heterogéneos, pues que solo puedes subir, o leer objetos completos, AWS llama objetos a los archivos con sus metadatos adjuntos. Es decir, no permite leer o modificar solo una parte del archivo. Una aplicación no podría añadir por ejemplo una línea de log al final de un archivo almacenado en Amazon S3, tendría que descargar el archivo, añadir la línea y volver a subirlo, cosa que no tiene sentido, para esas necesidades existe otros tipos de almacenamiento en AWS como es EBS.
Amazon S3 por ejemplo es muy útil para al almacenamiento de copias de seguridad (backups), en donde la aplicación de backup de una empresa genera el archivo de backup y lo sube Amazon S3 para que cuando haya que hacer una restauración, se pueda acceder a ese archivo, leer su contenido completo y restaurarlo. Otro uso muy frecuente es para el almacenamiento de archivos estáticos de una web o para almacenamiento de datos masivos de un datalake.
La administración se realiza desde la consola de AWS o a través la API proporcionada por AWS. Para la gestión de los objetos por los usuarios finales también se puede utilizar herramientas de terceros como CyberDuck.
Consola de AWS S3
Tiene unas características muy interesantes. Una de las más llamativas son que proporciona una garantía de almacenamiento de los datos de 99.999999999 € (11 nueves) es decir que el objeto que almacenes en Amazon S3 es muy difícil que se pueda perder, por problemas del servicio. Siempre puede caer un meteorito y destruir el planeta, pero en ese caso no nos va a importar que nuestro objeto ya no esté. En este punto hay que distinguir ente durabilidad que es lo que aseguran los 11 nueves y disponibilidad que está entre el 99.99% y el 99.5% dependiendo del tipo de almacenamiento deseado (lo veremos más adelante) esto significa que, aunque es dato es muy difícil que se pierda lo que sí puede ocurrir es que no esté disponible durante un corto periodo de tiempo. Soporta objetos de hasta 5 TB (pero solo se pueden subir partes de 5Gb Max, por lo que habría que subir el objeto en multipart). Tiene una capacidad teóricamente ilimitada (AWS asume que es capaz de ir añadiendo almacenamiento físico más rápido que los usuarios pueden subir datos). Pagas solo por el espacio utilizado y por el tráfico saliente, el tráfico entrante de subir objetos es gratuito, veremos más adelante en detalle por lo que se paga. La organización de los objetos en Amazon S3 es a través de los bucket que se definen a nivel de una región de AWS, por lo que el nombre del bucket ha de ser único en la región, por lo que es muy difícil que puedas crear un bucket “datos”, ya que el método de gestión de los objetos se realiza como URLs, un ejemplo de la ruta de un objeto tendría la forma:https://qualoom-expertise-technology.s3.eu-west-1.amazonaws.com/Directorio1/archivo1.txt
Tiene la opción de activar el versionado de un bucket lo que nos permite recuperar un objeto en el estado de una versión previa, si activáis esta opción tendremos que definir una política de ciclo de vida de vencimiento no actual para limitar el número de versiones a almacenar.
Otra opción muy interesante es que podemos establecer ciclos de vida de los datos de un bucket, no solo para las versiones, por ejemplo, si en un bucket almacenamos los logs de la ejecución de una implantación podemos tener definida una política de ciclo de vida que los elimine al cabo de cierto tiempo en el que consideramos que ya no son necesarios. Pero los ciclos de vida no solo sirven para borrar los datos, tienen otro uso muy interesante y es que puedes definir reglas para que los datos pasen a distintos almacenamientos, por ejemplo un bucket en el que almacenas facturas que has de mantener por norma 5 años, sabes que lo habitual es que durante los primeros meses si sea habitual consultarlas, pero que después son solo necesarias para cubrir normativa, puedes crear una política que los objetos que tengan más de 3 meses los cambie de almacenamiento por ejemplo a Glacier, que es el almacenamiento más económico, pero la lectura del objeto es más cara que la de Amazon S3, aparte de no ser instantánea ya puede tardar hasta 12 h desde que se solicita hasta que se obtiene dependiendo de tipo.
También se pueden definir a nivel de bucket la replicación entre distintas zonas de disponibilidad o tipos de almacenamiento. Si no estás familiarizado con el término de zonda de disponibilidad te recomiendo que revieses este otro artículo.
Respecto a la seguridad se pueden hacer públicos para que sean accesibles desde internet (esto es interesante para publicar webs estáticas a bajo coste) o lo habitual es que se gestione los accesos mediante ACLs o Políticas de IAM.
Como acabamos de comentar otra funcionalidad que tiene la opción de si definimos un bucket como público o le ponemos un CDN delante podemos servir una página web estática con soporte de documento índice y documentos de error personalizados en la que solo pagaríamos por el almacenamiento y el tráfico saliente.
Hay muchas más funcionalidades interesantes como el poder establecer notificaciones, el detonar llamadas a Lambda para ejecutar código, etc. A lo largo del documento hemos realizado menciones a que hay distintos tipos de almacenamiento vamos a repasarlos un poco.
- Amazon S3 Intelligent-Tiering para el ahorro automático de costos destinado a los datos con patrones de acceso desconocidos o cambiantes.
- Amazon S3 Standard para los datos a los que accede con frecuencia.
- Amazon S3 Standard-Infrequent Access (Amazon S3 Standard-IA) para los datos a los que accede con menor frecuencia.
- Amazon S3 One Zone-Infrequent Access (Amazon S3 One Zone-IA) para los datos a los que accede con menor frecuencia y requieren menor disponibilidad.
- Amazon S3 Glacier Instant Retrieval para los datos de archivo que requieren acceso inmediato.
- Amazon S3 Glacier Flexible Retrieval (antes Amazon S3 Glacier) para los datos de largo plazo a los que se accede de forma inusual y que no requieren acceso inmediato.
- Amazon S3 Glacier Deep Archive (Amazon S3 Glacier Deep Archive) para el archivo a largo plazo y la preservación digital con recuperación en horas al costo más bajo de almacenamiento en la nube.
- Amazon S3 Outposts. Si tiene requisitos de residencia de datos que no puede cumplir en una región de AWS existente, puede utilizar la clase de almacenamiento para almacenar sus datos de Amazon S3 en sus propias instalaciones.
Leave a comment