Introducción a Cloud SQL

Cloud SQL es un servicio de base de datos relacional completamente gestionado que facilita la configuración, el mantenimiento, la gestión y la administración de bases de datos PostgreSQL, MySQL y SQL Server en la nube. Este servicio es ideal para aplicaciones que requieren una base de datos relacional y desean aprovechar la escalabilidad y la flexibilidad de Google Cloud Platform (GCP).

Objetivos del Módulo

  • Comprender qué es Cloud SQL y sus beneficios.
  • Aprender a crear y configurar una instancia de Cloud SQL.
  • Conectar una aplicación a una base de datos en Cloud SQL.
  • Realizar operaciones básicas de administración de bases de datos.

Conceptos Clave

  1. Instancia de Cloud SQL: Una instancia es un entorno de base de datos que se ejecuta en GCP. Puedes tener múltiples instancias, cada una con su propia configuración y bases de datos.
  2. Base de Datos: Una colección organizada de datos que se almacena y accede electrónicamente desde un sistema informático.
  3. Usuarios y Permisos: Cloud SQL permite la creación de usuarios y la asignación de permisos para controlar el acceso a las bases de datos.
  4. Backups y Recuperación: Cloud SQL ofrece opciones para realizar copias de seguridad automáticas y manuales, así como para restaurar datos en caso de pérdida.

Creación de una Instancia de Cloud SQL

Paso 1: Acceder a la Consola de GCP

  1. Inicia sesión en tu cuenta de GCP.
  2. Navega a la consola de GCP.

Paso 2: Crear una Nueva Instancia

  1. En el menú de navegación, selecciona SQL.
  2. Haz clic en Crear instancia.
  3. Selecciona el tipo de base de datos que deseas utilizar (MySQL, PostgreSQL o SQL Server).

Paso 3: Configurar la Instancia

  1. Nombre de la instancia: Asigna un nombre único a tu instancia.
  2. Región y zona: Selecciona la región y la zona donde deseas que se aloje tu instancia.
  3. Configuración de la máquina: Elige la cantidad de CPU y memoria que necesitas.
  4. Almacenamiento: Configura el tipo y tamaño de almacenamiento.

Paso 4: Configurar la Autenticación y Red

  1. Contraseña del usuario root: Establece una contraseña para el usuario root.
  2. Redes autorizadas: Añade las direcciones IP que tendrán acceso a la instancia.

Paso 5: Crear la Instancia

  1. Revisa la configuración y haz clic en Crear.

Conexión a una Instancia de Cloud SQL

Conexión desde la Consola de GCP

  1. En la consola de GCP, navega a SQL.
  2. Selecciona tu instancia.
  3. Haz clic en Conectar usando Cloud Shell.

Conexión desde una Aplicación

Para conectar una aplicación a una instancia de Cloud SQL, puedes utilizar bibliotecas de cliente específicas para el lenguaje de programación que estés utilizando. A continuación, se muestra un ejemplo en Python utilizando SQLAlchemy.

Ejemplo en Python

from sqlalchemy import create_engine

# Reemplaza con tus credenciales y detalles de conexión
db_user = 'root'
db_password = 'your_password'
db_name = 'your_database'
cloud_sql_connection_name = 'your_project:your_region:your_instance'

# Construir la URL de conexión
connection_url = f'mysql+pymysql://{db_user}:{db_password}@/{db_name}?unix_socket=/cloudsql/{cloud_sql_connection_name}'

# Crear el motor de SQLAlchemy
engine = create_engine(connection_url)

# Conectar y realizar una consulta
with engine.connect() as connection:
    result = connection.execute("SELECT 'Hello, Cloud SQL!'")
    for row in result:
        print(row[0])

Administración de Bases de Datos

Crear una Base de Datos

  1. En la consola de GCP, navega a SQL.
  2. Selecciona tu instancia.
  3. Haz clic en Bases de datos y luego en Crear base de datos.
  4. Ingresa el nombre de la base de datos y haz clic en Crear.

Crear Usuarios y Asignar Permisos

  1. En la consola de GCP, navega a SQL.
  2. Selecciona tu instancia.
  3. Haz clic en Usuarios y luego en Agregar usuario.
  4. Ingresa el nombre de usuario y la contraseña.
  5. Asigna los permisos necesarios.

Realizar Backups

  1. En la consola de GCP, navega a SQL.
  2. Selecciona tu instancia.
  3. Haz clic en Backups y luego en Crear backup.
  4. Configura las opciones de backup y haz clic en Crear.

Ejercicio Práctico

Ejercicio 1: Crear y Conectar una Instancia de Cloud SQL

  1. Crea una instancia de Cloud SQL utilizando MySQL.
  2. Configura la instancia con una CPU y 4 GB de RAM.
  3. Crea una base de datos llamada test_db.
  4. Crea un usuario llamado test_user con una contraseña segura.
  5. Conecta a la base de datos desde una aplicación Python utilizando SQLAlchemy y realiza una consulta simple.

Solución

from sqlalchemy import create_engine

# Credenciales y detalles de conexión
db_user = 'test_user'
db_password = 'your_password'
db_name = 'test_db'
cloud_sql_connection_name = 'your_project:your_region:your_instance'

# Construir la URL de conexión
connection_url = f'mysql+pymysql://{db_user}:{db_password}@/{db_name}?unix_socket=/cloudsql/{cloud_sql_connection_name}'

# Crear el motor de SQLAlchemy
engine = create_engine(connection_url)

# Conectar y realizar una consulta
with engine.connect() as connection:
    result = connection.execute("SELECT 'Hello, Cloud SQL!'")
    for row in result:
        print(row[0])

Resumen

En esta sección, hemos aprendido sobre Cloud SQL, un servicio de base de datos relacional gestionado en GCP. Hemos cubierto cómo crear y configurar una instancia de Cloud SQL, cómo conectar una aplicación a la base de datos y cómo realizar operaciones básicas de administración. Con estos conocimientos, estás preparado para utilizar Cloud SQL en tus proyectos y aprovechar sus capacidades para gestionar bases de datos en la nube de manera eficiente.

© Copyright 2024. Todos los derechos reservados