sql >> Base de Datos >  >> RDS >> MariaDB

Comparación de las ofertas de Galera Cluster Cloud:segunda parte Google Cloud Platform (GCP)

En nuestro último blog discutimos las ofertas disponibles dentro de Amazon Web Services (AWS) cuando se ejecuta un MySQL Galera Cluster. En este blog, continuaremos la discusión analizando más a fondo cuáles son las ofertas para ejecutar la misma tecnología de agrupación en clústeres, pero esta vez en Google Cloud Platform (GCP).

GCP, como alternativa a AWS, ha estado atrayendo continuamente aplicaciones adecuadas para DevOps al ofrecer soporte para una amplia gama de tecnologías de pila completa, aplicaciones en contenedores y sistemas de bases de datos de gran producción. Google Cloud es un entorno completo y probado en batalla que potencia su propia infraestructura de hardware en Google para productos como YouTube y Gmail.

GCP ha ganado fuerza en gran parte debido a su lista de capacidades en constante crecimiento. Ofrece soporte para plataformas como Visual Studio, Android Studio, Eclipse, Powershell y muchas otras. GCP tiene una de las redes informáticas más grandes y avanzadas y brinda acceso a numerosas herramientas que lo ayudan a concentrarse en la creación de su aplicación.

Otra cosa que atrae a los clientes para migrar, importar o usar Google Cloud es su sólido apoyo y soluciones para la creación de contenedores. Kubernetes (GKE:Google Kubernetes Engine) está integrado en su plataforma.

GCP también lanzó recientemente una nueva solución llamada Anthos. Este producto está diseñado para permitir que las organizaciones administren cargas de trabajo usando la misma interfaz en Google Cloud Platform (GCP) o localmente usando GKE On-Prem, e incluso en nubes rivales como Amazon Web Services (AWS) o Azure.

Además de estas tecnologías, GCP ofrece tipos de máquinas sofisticadas y potentes, optimizadas para computación, como la familia C2 en GCE, que se basa en los procesadores escalables Intel de última generación (Cascade Lake).

GCP también sigue siendo compatible con el código abierto, lo que beneficia a los usuarios al proporcionar un marco sencillo y bien respaldado que facilita la entrega de un producto final de manera oportuna. A pesar de este soporte de tecnología de código abierto, GCP no proporciona soporte nativo para la implementación o configuración de un MySQL Galera Cluster. En este blog, le mostraremos la única opción disponible para usted si desea utilizar esta tecnología, la implementación a través de una instancia informática que debe administrar usted mismo.

El motor informático de Google (GCE)

GCE tiene un sofisticado y poderoso conjunto de nodos de cómputo disponibles para su consumo. A diferencia de AWS, GCE tiene el nodo informático más potente disponible en el mercado (n1-ultramem-160 con 160 vCPU y 3,75 TB de memoria). GCE también introdujo recientemente un nuevo tipo de familia de instancias informáticas denominada tipo de máquina C2. Basados ​​en la última generación de procesadores escalables Intel (Cascade Lake), los tipos de máquinas C2 ofrecen hasta 3,8 GHz de turbo en todos los núcleos sostenidos y brindan total transparencia en la arquitectura de las plataformas de servidor subyacentes; permitiéndole afinar el rendimiento. Los tipos de máquinas C2 ofrecen mucha más potencia de cómputo, se ejecutan en una plataforma más nueva y, en general, son más resistentes para las cargas de trabajo de cómputo intensivo que los tipos de máquinas N1 con una CPU alta. Las ofertas de la familia C2 son limitadas (en el momento de escribir este artículo) y no están disponibles en todas las regiones y zonas. C2 tampoco admite discos persistentes regionales, aunque sería un excelente complemento para los servicios de bases de datos con estado que requieren redundancia y alta disponibilidad. Los recursos de una instancia C2 son demasiados para un nodo de Galera, por lo que nos centraremos en los nodos de cómputo, que son ideales.

GCE también usa KVM como su software de tecnología de virtualización, mientras que Amazon usa Xen. Echemos un vistazo a los nodos de cómputo disponibles en GCE que son adecuados para ejecutar Galera junto con su equivalente en AWS EC2. Los precios difieren según la región, pero para este gráfico, usamos la región este de EE. UU. utilizando el tipo de precio bajo demanda para AWS.

Tipo de máquina/instancia

Google Compute Engine

AWS EC2

Compartido

f1-micro

G1-pequeño

Los precios comienzan en $0.006 -  $0.019 por hora

t2.nano – t3.2xlarge'

El precio comienza en $0.0058 - $0.3328 por hora

Estándar

n1-estándar-1 – n1-estándar-96

Los precios comienzan en $0,034 - $3,193 por hora

m4.grande – m4.16xgrande

m5.grande – m5d.metal

Los precios comienzan en $0.1 - $5.424 por hora

Memoria alta/Memoria optimizada

n1-highmem-2 – n1-highmem-96

n1-megamem-96

n1-ultramem-40 – n1-ultramem-160

Los precios comienzan en $0.083  - $17.651 por hora

r4.grande – r4.16xgrande

x1.16xgrande – x1.32xgrande

x1e.xgrande – x1e.32xgrande

Los precios comienzan en $0.133  - $26.688 por hora

Alta CPU/Almacenamiento optimizado

n1-highcpu-2 – n1-highcpu-32

Los precios comienzan en $0.05 - $2.383 por hora

h1.2xlarge – h1.16xlarge

i3.grande – i3.metal

I3en.grande - i3en.metal

p2.xgrande – d2.8xgrande

Los precios comienzan en $0.156 - $10.848 por hora

GCE tiene una cantidad menor de tipos predefinidos disponibles de nodos de cómputo para elegir, a diferencia de AWS. Sin embargo, cuando se trata del tipo de nodo, tiene más granularidad. Esto facilita la configuración y la elección del tipo de instancia que desea utilizar. Por ejemplo, puede agregar un disco y configurar su tamaño de bloque físico (4 es el valor predeterminado) en 16 o puede configurar su modo como lectura/escritura o solo lectura. Esto le permite ofrecer el tipo correcto de máquina o instancia informática lista para administrar su nodo Galera. También puede crear instancias de sus nodos de cómputo mediante el SDK de la nube o las API de la nube para automatizarlos o integrarlos en su integración, entrega o implementación continuas (CI/CD).

Precios (instancia informática, disco, vCPU, memoria y red)

El precio también depende de la región donde se encuentre, el tipo de sistema operativo o licencia (RHEL frente a Suse Linux Enterprise) y también el tipo de almacenamiento en disco que esté utilizando.

GCP también ofrece descuentos que le permiten economizar su consumo de recursos. Para Compute Engine, ofrece diferentes descuentos para aprovechar.

Los descuentos por uso sostenido se aplican a los siguientes recursos:

  • Las vCPU y la memoria para tipos de máquinas predefinidas y personalizadas de propósito general

  • Las vCPU y la memoria para tipos de máquinas con memoria optimizada

  • Las vCPU y la memoria para tipos de máquinas optimizadas para computación

  • Las vCPU y la memoria para los nodos de propietario único

  • El costo de la prima del 10 % para los nodos de propietario único, incluso si las vCPU y la memoria en esos nodos están cubiertas por descuentos por compromiso de uso

  • Dispositivos GPU1

Tenga en cuenta que los descuentos por uso continuo no se aplican a las máquinas virtuales creadas con App Engine Flexible Environment y Cloud Dataflow.

También puede usar descuentos por compromiso de uso cuando compra un VMS que está sujeto a un contrato. Este tipo de opción es ideal para cargas de trabajo predecibles y necesidades de recursos. Cuando compra un contrato de uso comprometido, compra una cierta cantidad de vCPU, memoria, GPU y SSD locales a un precio con descuento a cambio de comprometerse a pagar esos recursos durante 1 año o 3 años. El descuento es de hasta el 57 % para la mayoría de los recursos, como tipos de máquinas o GPU. El descuento es de hasta el 70 % para los tipos de máquinas optimizadas para memoria. Una vez comprado, se le factura mensualmente por los recursos que compró durante el plazo que seleccionó (ya sea que use los servicios o no).

Una VM interrumpible es una instancia que puede crear y ejecutar a un precio mucho más bajo que las instancias normales. Sin embargo, Compute Engine puede cancelar (anular) estas instancias si requiere acceso a esos recursos para otras tareas. Las instancias interrumpibles usan capacidad de Compute Engine en exceso, por lo que su disponibilidad varía según el uso.

Si sus aplicaciones son tolerantes a fallas y pueden soportar posibles apropiaciones de instancias, entonces las instancias apropiativas pueden reducir significativamente sus costos de Compute Engine. Por ejemplo, los trabajos de procesamiento por lotes pueden ejecutarse en instancias interrumpibles. Si algunas de esas instancias finalizan durante el procesamiento, el trabajo se ralentiza pero no se detiene por completo. Las instancias interrumpibles completan sus tareas de procesamiento por lotes sin colocar una carga de trabajo adicional en sus instancias existentes y sin requerir que pague el precio total por instancias normales adicionales.

Para Compute Engine, el tamaño del disco, el tipo de memoria de la máquina y el uso de la red se calculan en gigabytes (GB), donde 1 GB son 230 bytes. Esta unidad de medida también se conoce como gibibyte (GiB). Esto significa que GCP le ofrece pagar solo en función del consumo de recursos que haya asignado.

Ahora, si tiene una aplicación de base de datos de producción de alto nivel, es recomendable (e ideal) adjuntar o agregar un disco persistente independiente. Luego usaría ese disco como su volumen de base de datos, ya que le ofrece un rendimiento de disco confiable y consistente en GCE. Cuanto mayor sea el tamaño que configure, mayor será el IOPS que le ofrece. Consulte su lista de precios de discos persistentes para determinar el precio que obtendría. Además de esto, GCE tiene un disco persistente regional que es adecuado en caso de que necesite una alta disponibilidad más sólida y sostenible dentro de su clúster de base de datos. El disco persistente regional agrega más redundancia en caso de que su instancia finalice, se bloquee o se corrompa. Proporciona replicación síncrona de datos entre dos zonas en una región que ocurre de forma transparente en la instancia de VM. En el improbable caso de que se produzca un error en la zona, la carga de trabajo puede conmutar por error a otra instancia de máquina virtual en la misma zona o en una zona secundaria. Luego, puede forzar la conexión de su disco persistente regional a esa instancia. El tiempo de conexión forzada se estima en menos de un minuto.

Si almacena copias de seguridad como parte de su solución de recuperación ante desastres y requiere un volumen que abarque todo el clúster, GCP ofrece Cloud Filestore, NetApp Cloud Volumes y algunas otras soluciones alternativas para compartir archivos. Estos son servicios completamente administrados que ofrecen servicios estándar y premium. Puede consultar la página de precios de NetApp aquí y los precios de Filestore aquí.

Cifrado de Galera en GCP

GCP no incluye soporte específico para el tipo de cifrado disponible para Galera. Sin embargo, GCP encripta los datos del cliente almacenados en reposo de forma predeterminada, sin que se requiera ninguna acción adicional por su parte. GCP también ofrece otra opción para cifrar sus datos mediante claves de cifrado administradas por el cliente (CMEK) con Cloud KMS, así como con claves de cifrado proporcionadas por el cliente (CSEK). GCP también usa el cifrado SSL/TLS para todas las comunicaciones interceptadas a medida que los datos se mueven entre su sitio y el proveedor de la nube o entre dos servicios. Esta protección se logra cifrando los datos antes de la transmisión; autenticar los puntos finales; y descifrar y verificar los datos a su llegada.

Debido a que Galera usa MySQL bajo el capó (compilación de Percona, MariaDB o Codership), puede aprovechar el complemento de cifrado de administración de claves de archivo de MariaDB o usar los complementos de MySQL Keyring. Aquí hay un blog externo de Percona que es un buen recurso sobre cómo puede implementar esto.

Implementaciones de Galera Cluster Multi-AZ/Multi-Region/Multi-Cloud con GCP

De manera similar a AWS, GCP no ofrece soporte directo para implementar un clúster de Galera en Multi-AZ/-Region/-Cloud.

Alta disponibilidad, escalabilidad y redundancia de Galera Cluster en GCP

Una de las principales razones para usar un clúster de nodos de Galera es la alta disponibilidad, la redundancia y su capacidad de escalar. Si está sirviendo tráfico a nivel mundial, es mejor que atienda su tráfico en función de las regiones con su diseño arquitectónico, incluida una distribución geográfica de los nodos de su base de datos. Para lograr esto, es recomendable y factible la implementación de varias zonas de disponibilidad y varias regiones o varias nubes/multicentros de datos. Esto evita que el clúster deje de funcionar o funcione mal debido a la falta de quórum.

Para ayudarlo más con su diseño de escalabilidad, GCP también tiene un escalador automático que puede configurar con un grupo de escalado automático. Esto funcionará siempre que haya creado su clúster como grupos de instancias administrados. Por ejemplo, puedes monitorear la utilización de la CPU o confiar en las métricas de Stackdriver definidas en tu política de escalado automático. Esto le permite aprovisionar y automatizar instancias cuando se alcanza un cierto umbral, o finalizar las instancias cuando vuelve a su estado normal.

Para la implementación de múltiples regiones o múltiples nubes, Galera tiene su propio parámetro llamado gmcast.segment para el cual puede configurarlo al iniciar el servidor. Este parámetro está diseñado para optimizar la comunicación entre los nodos de Galera y minimizar la cantidad de tráfico enviado entre los segmentos de la red. Esto incluye la retransmisión de escritura y la selección de donantes de IST y SST. Este tipo de configuración le permite implementar varios nodos en diferentes regiones. Aparte de eso, también puede implementar sus nodos de Galera en un enrutamiento de proveedor de nube diferente desde GCP, AWS, Microsoft Azure o dentro de las instalaciones.

Le recomendamos que consulte nuestro blog Configuraciones de centros de datos múltiples usando Galera Cluster para MySQL o MariaDB y migración de red sin tiempo de inactividad con MySQL Galera Cluster usando Relay Node para recopilar más información sobre cómo implementar este tipo de implementaciones.

Rendimiento de la base de datos del clúster de Galera en GCP

Dado que no hay soporte disponible para Galera en GCP, sus elecciones dependen de los requisitos y el diseño de las demandas de tráfico y recursos de su aplicación. Para consultas que consumen mucha memoria, puede comenzar con la instancia n1-highmem-2. Las instancias de CPU alta (familia n1-highcpu*) pueden ser una buena opción si se trata de una base de datos de muchas transacciones o una buena opción para aplicaciones de juegos.

Es imprescindible elegir el almacenamiento adecuado y las IOPS requeridas para el volumen de su base de datos. Generalmente, el disco persistente basado en SSD es su elección aquí. Depende del volumen de tráfico requerido, es posible que deba consultar las opciones de almacenamiento de GCP para poder determinar el tamaño adecuado para su aplicación.

También le recomendamos que consulte y lea nuestro blog Cómo mejorar el rendimiento de Galera Cluster para MySQL o MariaDB para obtener más información sobre cómo optimizar su Galera Cluster.

Copias de seguridad de datos de Galera en GCP

No solo se debe hacer una copia de seguridad de sus datos de MySQL Galera, sino que también debe hacer una copia de seguridad de todo el nivel que comprende su aplicación de base de datos. Esto incluye archivos de registro (lógicos o binarios), archivos externos, archivos temporales, archivos de volcado, etc. Google recomienda que siempre cree una instantánea de los volúmenes de sus discos persistentes que utilizan sus instancias de GCE. Puede crear y programar instantáneas fácilmente. Las instantáneas de GCP se almacenan en Cloud Storage y puede seleccionar la ubicación o región deseada donde se ubicará la copia de seguridad. También puede configurar un programa para sus instantáneas, así como establecer una política de retención de instantáneas.

También puede usar servicios externos como ClusterControl, que le brinda soluciones de monitoreo y respaldo. Mira esto si quieres saber más.

Supervisión de la base de datos del clúster de Galera en GCP

GCP no ofrece monitoreo de base de datos cuando se usa GCE. El monitoreo del estado de su instancia se puede hacer a través de Stackdriver. Sin embargo, para la base de datos, deberá obtener una herramienta de monitoreo externa que tenga métricas de base de datos avanzadas y altamente granulares. Hay muchas opciones entre las que puede elegir, como PMM de Percona, DataDog, Idera, VividCortex o nuestro propio ClusterControl (la supervisión es GRATUITA con ClusterControl Community).

Seguridad de la base de datos del clúster de Galera en GCP

Como se discutió en nuestro blog anterior, puede adoptar el mismo enfoque para proteger su base de datos en la nube pública. En GCP, puede configurar una subred privada, reglas de firewall para permitir solo los puertos necesarios para ejecutar Galera (particularmente los puertos 3306, 4444, 4567, 4568). Puede usar NAT Gateway o configurar un host bastión para acceder a los nodos de su base de datos privada. Cuando estos nodos están encapsulados, no se puede acceder a ellos desde el exterior de las instalaciones de GCP. Puede leer nuestro blog anterior Implementación de la replicación MySQL multinube segura en AWS y GCP con VPN sobre cómo configuramos esto.

Además de esto, puede proteger sus datos en tránsito utilizando una conexión TLS/SSL o cifrando sus datos cuando están en reposo. Si está utilizando ClusterControl, implementar un tránsito seguro de datos es simple y fácil. Puede consultar nuestro blog Gestión de claves SSL y cifrado de datos MySQL en tránsito si desea probarlo. Para los datos en reposo, puede seguir la discusión que mencioné anteriormente en la sección Cifrado de este blog.

Solución de problemas del clúster de Galera 

GCP ofrece Stackdriver Logging que puedes aprovechar para ayudarte con los requisitos de observación, supervisión y notificación. Lo bueno de Stackdriver Logging es que ofrece integración con AWS. Con él, puede capturar los eventos de forma selectiva y luego generar una alerta basada en ese evento. Esto puede mantenerlo informado sobre ciertos problemas que pueden surgir y ayudarlo durante la resolución de problemas. GCP también tiene registros de auditoría en la nube que le brindan más información rastreable desde el interior del entorno de GCP, desde la actividad del administrador, el acceso a los datos y los eventos del sistema.

Si está utilizando ClusterControl, vaya a Registros -> Registros del sistema y podrá examinar los registros de errores capturados tomados del propio nodo MySQL Galera. Aparte de esto, ClusterControl proporciona monitoreo en tiempo real que amplificaría su sistema de alarma y notificación en caso de una emergencia o si su(s) nodo(s) MySQL Galera están dañados.

Conclusión

Google Cloud Platform ofrece una amplia variedad de servicios eficientes y potentes que puede aprovechar. De hecho, existen ventajas y desventajas para cada una de las plataformas de nube pública, pero GCP demuestra que AWS no tiene un bloqueo en la nube.

Es interesante que las grandes empresas, como Vimeo, se estén mudando a GCP desde sus instalaciones y experimentaron algunos resultados interesantes en su pila de tecnología. Bloomberg también está contento con GCP y está usando Percona XtraDB Cluster (una variante de Galera). Háganos saber lo que piensa sobre el uso de GCP para las configuraciones de MySQL Galera en los comentarios a continuación.