Google Cloud SQL y AlloyDB
Google Cloud ofrece Cloud SQL para PostgreSQL para instancias administradas estándar y AlloyDB para PostgreSQL para OLTP de mayor rendimiento con cómputo y almacenamiento separados. Ambos admiten alta disponibilidad, copias de seguridad automáticas y pools de lectura, con diferentes modelos de conmutación por error y perfiles de precios.
Receta
# gcloud: crear instancia Cloud SQL Postgres HA (conceptual)
gcloud sql instances create orders-prod \
--database-version=POSTGRES_18 \
--tier=db-custom-4-16384 \
--region=us-central1 \
--availability-type=REGIONAL \
--storage-auto-increase-- Después de conectarse a través de Cloud SQL Auth Proxy o IP privada
SELECT version();
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;Cuándo recurrir a esto:
- Aplicaciones nativas de GCP en GKE o Cloud Run que necesiten SQL con IP privada
- Elegir AlloyDB vs Cloud SQL para OLTP sensible a la latencia
- Diseñar un pool de lectura para tráfico de análisis
Ejemplo de trabajo
Cloud SQL regional HA con réplica de lectura y sidecar Auth Proxy en GKE.
# Fragmento de despliegue de Kubernetes - Cloud SQL Auth Proxy 2.x
containers:
- name: cloud-sql-proxy
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.0
args:
- "--structured-logs"
- "--private-ip"
- "my-project:us-central1:orders-prod"
- name: api
env:
- name: DATABASE_URL
value: "postgresql://app@127.0.0.1:5432/orders?sslmode=disable"# Instancia de réplica de lectura para BI (asíncrona)
gcloud sql instances create orders-replica \
--master-instance-name=orders-prod \
--tier=db-custom-2-8192 \
--region=us-central1-- En la réplica
SELECT pg_is_in_recovery();
-- Enrutar la conexión de solo lectura del ORM a la IP de la réplica a través de un DSN separadoLo que esto demuestra:
- HA regional = primario + standby en la región (conmutación por error automática)
- Auth Proxy maneja IAM y TLS a Cloud SQL sin lista blanca de IP estática en el portátil
- El DSN de la réplica de lectura aísla la carga de informes
Profundización
Cloud SQL vs AlloyDB
| Aspecto | Cloud SQL PostgreSQL | AlloyDB |
|---|---|---|
| Posicionamiento | PostgreSQL administrado general | Compatible con PostgreSQL de alto rendimiento |
| Almacenamiento | PD/SSD estándar | Almacenamiento inteligente de AlloyDB |
| Escalado de lectura | Réplicas de lectura | Nodos de pool de lectura (baja latencia) |
| Mejor para | OLTP web típico | Latencia/rendimiento exigentes |
| Extensiones | Lista blanca de Google | Lista blanca (verificar matriz) |
Modelos de Alta Disponibilidad (HA)
- Zonal: zona única, sin conmutación por error automática de alta disponibilidad
- Regional: zona primaria + standby, conmutación por error automática (predeterminado de producción)
- Ventanas de mantenimiento: declarar; probar la conmutación por error trimestralmente
Redes
- IP privada a través de peering de VPC (recomendado)
- IP pública deshabilitada a menos que sea un requisito heredado
- Auth Proxy para autenticación de base de datos IAM y túnel seguro desde CI/GKE
Errores comunes
- IP pública con redes autorizadas 0.0.0.0/0 - exposición a Internet. Solución: solo IP privada + proxy.
- Instancia de producción de zona única - la interrupción de AZ es tiempo de inactividad. Solución:
availability-type=REGIONAL. - Latencia de réplica de lectura ignorada - paneles de BI obsoletos. Solución: monitorizar la métrica de latencia de replicación; limitar la antigüedad aceptable.
- Sorpresa en el costo de AlloyDB - CPU + almacenamiento + nodos de lectura suman. Solución: POC con carga de trabajo realista antes de comprometerse.
- Paridad de extensiones - las versiones de
postgis,vectordifieren entre Cloud SQL y AlloyDB. Solución: verificar antes de la aprobación de la arquitectura. - Conexión desde Cloud Run sin proxy - se requiere conector de VPC para IP privada. Solución: acceso a VPC sin servidor o patrón de sidecar proxy.
Alternativas
| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
| AlloyDB | Necesita pool de lectura escalable de Google | Base de datos pequeña y simple, sensible al costo |
| Cloud SQL zonal dev | Sandbox de GCP más barato | SLA de producción |
| Spanner | Consistencia fuerte global | Necesita SQL/extensiones PostgreSQL puras |
| Autohospedado en GCE | Control total de extensiones | Desea parches administrados |
Preguntas frecuentes
¿Postgres 18 en Cloud SQL?
Consulte gcloud sql database-versions list - Google publica las versiones principales según su cadencia.
¿Autenticación de base de datos IAM?
Admitido con Auth Proxy y bibliotecas conectoras - tokens de corta duración similares a AWS IAM.
¿Recuperación puntual?
La retención del registro de transacciones es configurable - alinear con la política de RPO.
¿DR entre regiones?
Réplica de lectura en una segunda región; promover manualmente o automatizar mediante un runbook.
¿pgvector?
Verifique la lista de extensiones por versión; pruebe los parámetros HNSW en staging AlloyDB.
¿Notificaciones de mantenimiento?
Habilitar en la consola; probar la conmutación por error después del mantenimiento en staging primero.
¿Cloud SQL Insights?
La interfaz de usuario de Insights de consultas complementa pg_stat_statements para las SQL principales.
¿Motor columnar de AlloyDB?
Para aceleración de análisis - no es un reemplazo para el almacén de datos; evaluar patrones de escaneo.
¿Límites de cuota?
Instancias por proyecto, límites de conexión por nivel - planificar PgBouncer temprano.
¿Exportar a GCS?
Copia de seguridad automática en bucket para retención a largo plazo más allá de la ventana predeterminada.
Relacionados
- Conceptos básicos de Postgres administrado - responsabilidad compartida
- AWS RDS y Aurora Postgres - comparación de AWS
- Neon y Supabase - alternativas sin servidor
- ADR de selección de nube - matriz de decisión
- Réplicas de lectura para informes - enrutamiento de lectura
Versiones de pila: Esta página se escribió para PostgreSQL 18.4 (estable 18, mantenimiento 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x y PostGIS 3.5+.