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
- 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.
- Base de Datos: Una colección organizada de datos que se almacena y accede electrónicamente desde un sistema informático.
- 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.
- 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
- Inicia sesión en tu cuenta de GCP.
- Navega a la consola de GCP.
Paso 2: Crear una Nueva Instancia
- En el menú de navegación, selecciona SQL.
- Haz clic en Crear instancia.
- Selecciona el tipo de base de datos que deseas utilizar (MySQL, PostgreSQL o SQL Server).
Paso 3: Configurar la Instancia
- Nombre de la instancia: Asigna un nombre único a tu instancia.
- Región y zona: Selecciona la región y la zona donde deseas que se aloje tu instancia.
- Configuración de la máquina: Elige la cantidad de CPU y memoria que necesitas.
- Almacenamiento: Configura el tipo y tamaño de almacenamiento.
Paso 4: Configurar la Autenticación y Red
- Contraseña del usuario root: Establece una contraseña para el usuario root.
- Redes autorizadas: Añade las direcciones IP que tendrán acceso a la instancia.
Paso 5: Crear la Instancia
- Revisa la configuración y haz clic en Crear.
Conexión a una Instancia de Cloud SQL
Conexión desde la Consola de GCP
- En la consola de GCP, navega a SQL.
- Selecciona tu instancia.
- 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
- En la consola de GCP, navega a SQL.
- Selecciona tu instancia.
- Haz clic en Bases de datos y luego en Crear base de datos.
- Ingresa el nombre de la base de datos y haz clic en Crear.
Crear Usuarios y Asignar Permisos
- En la consola de GCP, navega a SQL.
- Selecciona tu instancia.
- Haz clic en Usuarios y luego en Agregar usuario.
- Ingresa el nombre de usuario y la contraseña.
- Asigna los permisos necesarios.
Realizar Backups
- En la consola de GCP, navega a SQL.
- Selecciona tu instancia.
- Haz clic en Backups y luego en Crear backup.
- Configura las opciones de backup y haz clic en Crear.
Ejercicio Práctico
Ejercicio 1: Crear y Conectar una Instancia de Cloud SQL
- Crea una instancia de Cloud SQL utilizando MySQL.
- Configura la instancia con una CPU y 4 GB de RAM.
- Crea una base de datos llamada
test_db
. - Crea un usuario llamado
test_user
con una contraseña segura. - 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.
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