AlloyDB para PostgreSQL es un servicio de base de datos completamente administrado, compatible con PostgreSQL, que está diseñado para cargas de trabajo exigentes, incluido el procesamiento híbrido transaccional y analítico. AlloyDB vincula un motor de base de datos creado por Google con una arquitectura de múltiples nodos basada en la nube para brindar rendimiento, confiabilidad y disponibilidad de nivel empresarial.
Cómo funciona AlloyDB
Una aplicación se conecta a instancias de AlloyDB con protocolos y técnicas estándar de PostgreSQL. Luego, la aplicación usa la sintaxis de consulta de PostgreSQL para trabajar con la base de datos.
En el fondo, AlloyDB utiliza una jerarquía basada en la nube de componentes y funciones que están diseñados para maximizar la disponibilidad de tus datos y optimizar el rendimiento y la capacidad de procesamiento de las consultas.Las herramientas administrativas de Google Cloudte permiten supervisar el estado de tu implementación de AlloyDB y ajustar su escala y tamaño para que se ajuste mejor a las demandas cambiantes de tu carga de trabajo.
Clústeres
Una sola implementación de AlloyDB dentro de una región determinada de Google Cloud organiza todos sus recursos en un clúster. Esto incluye todas tus bases de datos, registros y otros metadatos. AlloyDB implementa todos los recursos de un clúster dentro de una sola nube privada virtual (VPC) y hace uso de un sistema de archivos basado en la nube diseñado por Google y optimizado para AlloyDB.
Nodos e instancias
Un clúster contiene varios nodes, que son instancias de máquina virtual que se dedican a ejecutar el motor de base de datos compatible con PostgreSQL que usan las aplicaciones para consultar los datos de tu clúster. AlloyDB organiza los nodos en instancias, cada una de las cuales tiene una dirección IP privada y estática en tu VPC. En la práctica, tus aplicaciones se conectan a instancias en estas direcciones IP con protocolos de PostgreSQL. Luego, las instancias pasan las consultas de SQL a sus nodos.
AlloyDB tiene dos tipos de instancias:
Instancia principal: Cada clúster tiene una instancia principal, que proporciona un punto de acceso de lectura o escritura a tus datos. Una instancia principal puede ser básica o con alta disponibilidad (HA).
Instancia principal de alta disponibilidad: Una instancia principal de alta disponibilidad tiene dos nodos: uno activo y uno en espera. AlloyDB supervisa la disponibilidad del nodo activo y lo promueve automáticamente al nodo en espera cuando es necesario.
Instancia básica: Los entornos que no son de producción y que no requieren alta disponibilidad pueden usar instancias básicas de forma opcional. Una instancia básica tiene un solo nodo, sin nodo en espera. Para obtener más información, consulta Reduce los costos con instancias básicas.
Instancia de grupo de lectura: De manera opcional, tu clúster puede tener una o más instancias de grupo de lectura, cada una con uno o más nodos de solo lectura, hasta un máximo de 20 en todo el clúster. AlloyDB balancea automáticamente todas las solicitudes que se envían a una instancia de grupo de lectura y las enruta a los nodos de la instancia.
Para casos de uso más simples, un clúster puede tener solo la instancia principal, sin grupos de lectura, y las aplicaciones usan la instancia principal para todas las consultas. Para trabajos más demandantes, puedes agregar instancias de grupos de lectura al clúster. Luego, configura tus aplicaciones de informes o analíticas para que les envíen solicitudes de lectura. Esta técnica reduce la carga en tu instancia principal y mejora la escalabilidad, ya que distribuye la carga en varios nodos.
Puedes agregar, quitar o ajustar el recuento de nodos de una instancia de grupo de lectura en cualquier momento, a medida que cambien las necesidades de tu aplicación. También puedes cambiar el tamaño de la memoria y la cantidad de CPU virtuales de los nodos constituyentes de una instancia cuando sea necesario, con un tiempo de inactividad mínimo. El escalamiento de tus instancias no supone un riesgo de pérdida de datos, ya que AlloyDB almacena tus datos en la capa de almacenamiento flexible del clúster, y no en las instancias.
En este diagrama, se ilustra un clúster de ejemplo escalado para controlar cargas de trabajo exigentes, con la inclusión de varias instancias de solo lectura de balanceo de cargas:
Características clave
AlloyDB se distingue de una instalación estándar de PostgreSQL de varias maneras, más allá de las ventajas de escalamiento vertical y horizontal inherentes a la arquitectura multinodo que se describió anteriormente. En las siguientes secciones, se analizan en detalle las funciones clave de AlloyDB.
Funciones automáticas y adaptables de la base de datos
El motor de base de datos totalmente compatible con PostgreSQL que potencia cada nodo de AlloyDB tiene varias funciones que analizan de forma continua la estructura y la frecuencia de las consultas que manejan tus instancias. Esta información se usa para sugerir mejoras en el esquema o aplicar optimizaciones automáticamente:
Un asesor de índices te ayuda a encontrar oportunidades para optimizar el esquema de tu base de datos con índices nuevos basados en tus patrones de uso.
Un motor de columnas puede acelerar el rendimiento de las consultas analíticas almacenando datos en la memoria con un formato de columnas. Esto permite que AlloyDB use técnicas de procesamiento avanzadas para analizar de manera eficiente una gran cantidad de datos de tablas cuando sea necesario.
Una variación adaptable de la función de autoaspiración de datos inactivos de PostgreSQL ajusta automáticamente los parámetros relacionados con la aspiración para que se adapten mejor a la forma de tu carga de trabajo.
Los sistemas de administración automática de memoria y almacenamiento aprovechan el ambiente basado en la nube creado por Google en el que se ejecuta AlloyDB, asignando y liberando memoria y almacenamiento de forma continua según sea necesario para mantener tu clúster en funcionamiento con un rendimiento y una eficiencia de recursos óptimos.
Alta disponibilidad
De forma predeterminada, un clúster de AlloyDB ofrece disponibilidad (HA) a través de los nodos redundantes de su instancia principal, ubicados en dos zonas diferentes, con conmutación por error automática.
Los clústeres que operan en entornos que no son de producción y que no requieren HA pueden usar, de manera opcional, instancias principales básicas de una sola zona.
Si agregas instancias de grupo de lectura que contengan al menos dos nodos, se crearán más puntos de acceso a tus datos con alta disponibilidad, equilibrados de carga y multizonales. Todas las instancias del grupo de lectura se ejecutan independientemente de la instancia principal.
Para obtener más información sobre las consideraciones específicas de cada región, consulta Geografía y regiones.
Copia de seguridad y recuperación ante desastres
AlloyDB cuenta con un sistema de copia de seguridad y recuperación continuo que te permite crear un clúster nuevo en cualquier momento dentro de un período de retención ajustable. Esto te permite recuperarte rápidamente de accidentes de pérdida de datos.
Además, AlloyDB puede crear y almacenar copias de seguridad completas de los datos de tu clúster, ya sea a pedido o de forma periódica. En cualquier momento, puedes restablecer desde una copia de seguridad a un nuevo clúster de AlloyDB que contenga todos los datos del clúster original en el momento de la creación de la copia de seguridad.
Para obtener más información, consulta Acerca de las copias de seguridad.
Como otro método de recuperación ante desastres, puedes lograr la replicación entre regiones si creas clústeres secundarios en regiones de Google Cloudindependientes. AlloyDB transmite datos de forma asíncrona desde un clúster principal designado a cada uno de sus clústeres secundarios. Cuando sea necesario, puedes ascender un clúster secundario a un clúster de AlloyDB con todas las funciones con instancias principales y de grupos de lectura.
Para obtener más información, consulta Acerca de la replicación entre regiones.
Seguridad y control de acceso
Puedes configurar un clúster para que requiera conexión con el proxy de autenticación seguro de AlloyDB, que usa Identity and Access Management (IAM) de Google Cloud para el control de acceso. Para obtener más información, consulta Autorización.
AlloyDB usa el sistema estándar de roles de usuario de PostgreSQL para la autenticación y presenta algunos roles adicionales específicos de AlloyDB. Para obtener más información, consulta Administra los roles de usuario de AlloyDB.
Encriptación
De forma predeterminada, AlloyDB protege todos los datos en reposo con los métodos de encriptación de Google. Si, en cambio, necesitas encriptar tus datos con una clave que proporciones, puedes especificar una clave de encriptación administrada por el cliente (CMEK) cuando crees un clúster. Luego, AlloyDB usa la clave CMEK para encriptar todos los datos que se escriben en ese clúster.
Las CMEK también se aplican a las copias de seguridad. Puedes especificar una clave de CMEK cuando creas una copia de seguridad a pedido, configuras una programación de copias de seguridad o restableces desde una copia de seguridad.
Para obtener más información, consulta Acerca de CMEK.
Mantenimiento sin interrupciones
Las operaciones de mantenimiento de AlloyDB están diseñadas para minimizar las interrupciones en tu base de datos. Las instancias principales y secundarias tienen un tiempo de inactividad de menos de un segundo, mientras que los grupos de lectura permanecen disponibles de forma continua sin tiempo de inactividad. Para ello, se preparan servidores de reemplazo y se intercambian rápidamente con los servidores activos cuando estén listos. Durante este proceso, se pierden por un momento todas las conexiones activas a la base de datos. Puedes seguir usando tu base de datos normalmente durante este proceso.
Si bien este proceso de reemplazo garantiza un tiempo de inactividad mínimo, la operación general puede tardar varios minutos, como se indica en la consola de Google Cloud y en Google Cloud CLI.
Estas operaciones de mantenimiento incluyen tareas de mantenimiento periódicas que ejecuta Google
y tareas que realizas de forma manual, como la configuración de marcas y el cambio de tamaño
de instancias. Si deseas aplicar cualquier actualización de inmediato, incluso si eso implica un tiempo de inactividad más prolongado, usa la marca de base de datos FORCE_APPLY
.
Compatibilidad con extensiones
AlloyDB incluye compatibilidad con varias extensiones populares de PostgreSQL. Para obtener la lista completa, consulta Extensiones de bases de datos compatibles.
Una alternativa alojada por el cliente: AlloyDB Omni
Como alternativa a ejecutar AlloyDB en Google Cloud, Google ofrece AlloyDB Omni. Esta edición optimizada y descargable de AlloyDB te permite ejecutar su potente motor de base de datos en tu propio entorno de procesamiento basado en Linux, dondequiera que esté.
Para obtener más información, consulta Acerca de AlloyDB Omni.