Introducción a Cloud Storage
Google Cloud Storage es un servicio de almacenamiento de objetos que permite almacenar y acceder a datos de manera segura y escalable. Es ideal para almacenar datos no estructurados como imágenes, videos, archivos de respaldo y datos de aplicaciones.
Conceptos Clave
- Buckets: Contenedores donde se almacenan los datos. Cada bucket tiene un nombre único y se configura con una región específica.
- Objetos: Los datos que se almacenan dentro de los buckets. Cada objeto tiene un nombre único dentro del bucket.
- Clases de almacenamiento: Diferentes niveles de almacenamiento que ofrecen un equilibrio entre costo y rendimiento.
- Control de acceso: Mecanismos para gestionar quién puede acceder a los datos y qué acciones pueden realizar.
Configuración de Cloud Storage
Crear un Bucket
-
Acceder a la consola de GCP:
- Navega a la consola de Google Cloud Platform.
- Selecciona el proyecto en el que deseas trabajar.
-
Crear un nuevo bucket:
- Ve a la sección "Storage" en el menú de navegación.
- Haz clic en "Create bucket".
- Asigna un nombre único al bucket.
- Selecciona la ubicación (región o multi-región).
- Elige una clase de almacenamiento (Standard, Nearline, Coldline, Archive).
- Configura las opciones de control de acceso y encriptación.
- Haz clic en "Create".
Ejemplo Práctico: Crear un Bucket
from google.cloud import storage def create_bucket(bucket_name): """Crea un nuevo bucket en Google Cloud Storage.""" # Inicializa el cliente de almacenamiento storage_client = storage.Client() # Crea el bucket bucket = storage_client.create_bucket(bucket_name) print(f"Bucket {bucket.name} creado.") # Llama a la función con el nombre del bucket create_bucket('mi-nuevo-bucket')
Subir Objetos a un Bucket
-
Seleccionar el bucket:
- En la consola de GCP, selecciona el bucket al que deseas subir los archivos.
-
Subir archivos:
- Haz clic en "Upload files" o "Upload folder".
- Selecciona los archivos o la carpeta que deseas subir.
- Haz clic en "Open" para iniciar la subida.
Ejemplo Práctico: Subir un Archivo
def upload_blob(bucket_name, source_file_name, destination_blob_name): """Sube un archivo a un bucket específico.""" # Inicializa el cliente de almacenamiento storage_client = storage.Client() # Selecciona el bucket bucket = storage_client.bucket(bucket_name) # Crea un blob en el bucket blob = bucket.blob(destination_blob_name) # Sube el archivo blob.upload_from_filename(source_file_name) print(f"Archivo {source_file_name} subido a {destination_blob_name}.") # Llama a la función con los parámetros necesarios upload_blob('mi-nuevo-bucket', 'ruta/al/archivo.txt', 'archivo_subido.txt')
Clases de Almacenamiento
Clase de Almacenamiento | Descripción | Uso Ideal |
---|---|---|
Standard | Alta disponibilidad y baja latencia. | Datos a los que se accede con frecuencia. |
Nearline | Menor costo, pero con cargos por acceso. | Datos a los que se accede menos de una vez al mes. |
Coldline | Aún menor costo, con mayores cargos por acceso. | Datos a los que se accede menos de una vez al año. |
Archive | Costo más bajo, diseñado para almacenamiento a largo plazo. | Datos a los que se accede raramente, si es que alguna vez. |
Control de Acceso
Tipos de Control de Acceso
- Control de acceso a nivel de bucket: Permite definir permisos a nivel de bucket.
- Control de acceso a nivel de objeto: Permite definir permisos a nivel de objeto individual.
Ejemplo Práctico: Configurar Control de Acceso
def make_blob_public(bucket_name, blob_name): """Hace que un blob sea público.""" # Inicializa el cliente de almacenamiento storage_client = storage.Client() # Selecciona el bucket bucket = storage_client.bucket(bucket_name) # Selecciona el blob blob = bucket.blob(blob_name) # Hace que el blob sea público blob.make_public() print(f"Blob {blob_name} es ahora público y accesible en {blob.public_url}") # Llama a la función con los parámetros necesarios make_blob_public('mi-nuevo-bucket', 'archivo_subido.txt')
Ejercicios Prácticos
Ejercicio 1: Crear y Configurar un Bucket
- Crea un bucket llamado
mi-bucket-ejercicio
. - Configura el bucket para que use la clase de almacenamiento
Nearline
. - Sube un archivo de texto llamado
ejemplo.txt
al bucket.
Solución
def create_and_upload(bucket_name, source_file_name, destination_blob_name): """Crea un bucket y sube un archivo.""" storage_client = storage.Client() # Crea el bucket con la clase de almacenamiento Nearline bucket = storage_client.create_bucket(bucket_name, storage_class="NEARLINE") # Sube el archivo blob = bucket.blob(destination_blob_name) blob.upload_from_filename(source_file_name) print(f"Bucket {bucket.name} creado y archivo {source_file_name} subido a {destination_blob_name}.") # Llama a la función con los parámetros necesarios create_and_upload('mi-bucket-ejercicio', 'ruta/al/ejemplo.txt', 'ejemplo.txt')
Ejercicio 2: Configurar Control de Acceso
- Haz que el archivo
ejemplo.txt
en el bucketmi-bucket-ejercicio
sea público.
Solución
Conclusión
En esta sección, hemos aprendido sobre Google Cloud Storage, cómo crear y configurar buckets, subir archivos y gestionar el control de acceso. Estos conceptos son fundamentales para manejar datos en GCP de manera eficiente y segura. En el próximo módulo, exploraremos otros servicios principales de GCP, como Cloud SQL y App Engine.
Curso de Google Cloud Platform (GCP)
Módulo 1: Introducción a Google Cloud Platform
- ¿Qué es Google Cloud Platform?
- Configuración de tu cuenta de GCP
- Descripción general de la consola de GCP
- Comprensión de proyectos y facturación
Módulo 2: Servicios principales de GCP
Módulo 3: Redes y seguridad
Módulo 4: Datos y análisis
Módulo 5: Aprendizaje automático e IA
Módulo 6: DevOps y monitoreo
- Cloud Build
- Repositorios de código en la nube
- Cloud Functions
- Monitoreo de Stackdriver
- Cloud Deployment Manager
Módulo 7: Temas avanzados de GCP
- Híbrido y multi-nube con Anthos
- Computación sin servidor con Cloud Run
- Redes avanzadas
- Mejores prácticas de seguridad
- Gestión y optimización de costos