Hay muchas opciones para almacenar datos en Google Cloud. Este artículo explora una: el almacenamiento de objetos Google Cloud Storage (GCS).

**Misión**
Google Cloud Storage tiene como propósito guardar y recuperar datos binarios como entidades completas. Si esa entidad estuviera en tu computadora, la llamarías archivo; pero al almacenarse en GCS recibe el nombre de objeto. A diferencia de los archivos en tu computadora, los objetos de GCS son inmutables: nunca se pueden modificar.
Los objetos de GCS se pueden eliminar o reemplazar, pero no modificar. Esta característica se puede aprovechar en muchos diseños de arquitectura a escala de la nube.
Los objetos de GCS también son opacos. GCS no entiende la estructura interna de los objetos, ya que son simplemente secuencias de datos binarios. GCS usa metadatos asociados para llevar el control de aspectos del objeto, como la fecha y hora de creación, el tipo MIME y el tamaño.
Los objetos de GCS son duraderos. Google los almacena con diversas técnicas para garantizar al menos 11 "9s", es decir, una durabilidad anual del 99,999999999% en una región. (Para protegerse de pérdidas por desastres locales, naturales o provocados, un usuario puede optar por almacenar los datos en varias regiones o incluso en varias nubes). Once 9s significa que de mil millones de objetos almacenados durante 100 años se perdería como máximo uno.
Los objetos de GCS están disponibles. Estar disponible significa que GCS puede entregar un objeto cuando se le solicita. GCS ofrece varias opciones de SLA para la disponibilidad mensual: 99,95%, 99,9% o 99,0%. Traducido a tiempo, esto equivale a 22 minutos, 44 minutos o 7 horas y 18 minutos de no disponibilidad al mes.
Los objetos de GCS se almacenan en buckets dentro de un proyecto de GCP. Los buckets aportan el contexto de almacenamiento para los objetos: identidad, el proyecto que los aloja —asociado a la seguridad y a una cuenta de facturación—, ubicación geográfica, políticas y más.
Un bucket de GCS tiene un identificador único global expresado como URI . Google usa el esquema de URI gs: para los buckets y objetos de GCS.
La sintaxis de la URI es: gs://
Por ejemplo, gs://doit-intl-storage/logo.png es una URI única a nivel global.
Rol arquitectónico
GCS cumple un papel importante en el diseño arquitectónico de muchos sistemas en la nube. En general, GCS es la opción más económica para guardar información. Aun así, conviene prestar atención a la latencia, al ancho de banda y a las restricciones arquitectónicas tradicionales si se quiere mantener la eficiencia en costos.
Ten en cuenta que GCS es un servicio. Se accede a él mediante una API REST, que a su vez se expone a través de bibliotecas cliente para muchos lenguajes de programación, una CLI y multitud de herramientas de terceros. GCS no es un sistema de almacenamiento en bloque, así que no se puede usar directamente como sistema de archivos para una máquina virtual o contenedores.
Costos
Hay varios factores que inciden en el costo de usar Google Cloud Storage. Algunos de los más importantes son:
- El tamaño del objeto
- La duración del almacenamiento
- Las características del bucket: ubicación, redundancia y clase de almacenamiento
- La actividad, como escribir y leer un objeto y sus metadatos
- Los bytes transmitidos por una o más redes cuando se transfiere el objeto
Los costos se pueden ver de dos maneras. La primera es cuánto cuesta almacenar un objeto si no se hace nada con él: una vez escrito, ni se lee ni se elimina. Ese es el costo puro de almacenamiento. La segunda son los costos por actividad: lectura, transferencia, eliminación, consultas, etc.
Hablemos de números para entender el panorama. Para el costo puro de almacenamiento, tomemos como ejemplo un único objeto de 1 GiB almacenado durante un año. (Recuerda que 1 GiB = 1073741824 bytes (= 10243 B = 230 B).)
El almacenamiento estándar más caro está en Brasil: $0,42, mientras que en muchos lugares baja hasta $0,24. El almacenamiento estándar es ideal para objetos de uso frecuente. Para objetos inactivos, el costo del almacenamiento de clase archivo es drásticamente menor: $0,036 en Brasil y $0,0144 en otras regiones.
Los costos por actividad pueden sorprender a quienes recién empiezan. Existen cargos por escribir, leer, listar objetos y eliminar objetos antes de tiempo (si el objeto está en un contexto de almacenamiento a largo plazo). Estos cargos pueden influir en la ingeniería e incluso en la arquitectura de un sistema a escala de la nube.
Por ejemplo, estuve asesorando a una empresa que gestiona imágenes satelitales. Su sistema on-premise almacenaba muchos mosaicos de imagen pequeños. Cuando migraron a GCS, descubrieron que su diseño —leer mosaicos pequeños para ensamblar una imagen grande— generaba costos altísimos debido a la actividad de lectura.
Rediseñaron el sistema para almacenar menos imágenes pero más grandes, y dividirlas en memoria después de leerlas. Suena contraintuitivo, pero así funciona GCS.
Seguridad
El tema más amplio de la seguridad en la nube lo trataré en otro artículo. La seguridad de GCS se gestiona mediante IAM. En el pasado hubo filtraciones de seguridad serias porque resultaba demasiado fácil dar acceso público a un bucket por accidente. Google cambió eso y hoy existen muchas advertencias en su lugar.
Para mantenerte al día, síguenos en el DoiT Engineering Blog , DoiT Linkedin Channel y el DoiT Twitter Channel . Para explorar oportunidades laborales, visita https://careers.doit-intl.com .