Instancias

En esta página se presentan los conceptos de instancias de Cloud Spanner, configuraciones de instancias y nodos. Asimismo, se explican las diferencias entre las instancias regionales y multirregionales, así como sus pros y contras. Si no estás familiarizado con el funcionamiento de la replicación en Cloud Spanner, lee primero el apartado sobre replicación.

Consulta el apartado sobre creación y administración de instancias para obtener detalles sobre cómo crear, agrupar, editar y eliminar instancias.

Descripción general de las instancias

Para usar Cloud Spanner, primero debes crear una instancia de Cloud Spanner dentro de tu proyecto de Google Cloud Platform. Se trata de una asignación de recursos que utilizan las bases de datos de Cloud Spanner creadas en esa instancia.

La creación de instancias conlleva dos elecciones importantes: la configuración de la instancia y el recuento de nodos. Estas opciones determinan la ubicación y la cantidad de los recursos de almacenamiento y servicio de la instancia. La configuración que hayas elegido es permanente para la instancia, pero puedes cambiar el recuento de nodos más adelante si es necesario.

Configuración de instancias

La configuración de una instancia define el emplazamiento geográfico y la replicación de las bases de datos en esa instancia. Al crear una instancia, se debe configurarla como regional (es decir, todos los recursos se almacena dentro de una única región de GCP) o multirregional (los recursos abarcan más de una región). La opción se elige selecciona una configuración de instancia, que determina dónde se almacenan los datos de esta. Más abajo se describen con más detalle las configuraciones regionales y multirregionales.

Recuento de nodos

Además de elegir dónde se almacenan los datos al crear una instancia, se debe elegir también el recuento de nodos, o el número de nodos que asignar a esa instancia. El recuento de nodos que elijas determina la cantidad de recursos de servicio y almacenamiento disponibles para las bases de datos en esa instancia.

Cada nodo ofrece hasta 2 TiB de almacenamiento. Los valores de rendimiento máximo de lectura y escritura que pueden proporcionar los nodos dependen de la configuración de la instancia, así como en el diseño de esquema y las características del conjunto de datos. Consulta las secciones sobre el rendimiento de configuración regional y el rendimiento de configuración multirregional para obtener más detalles.

Después de crear una instancia, se puede cambiar el número de nodos de la instancia más adelante. Puedes usar la página Cloud Spanner en la consola de Google Cloud Platform o la herramienta de línea de comandos gcloud para cambiar la cantidad de nodos.

Cloud Spanner no cuenta con modo de suspensión. Los nodos de Cloud Spanner son recursos especializados, e incluso cuando no se está ejecutando una carga de trabajo, los nodos de Cloud Spanner realizan con frecuencia tareas en segundo plano para optimizar y proteger los datos.

Nodos frente a réplicas

Si debes ampliar los recursos de publicación y almacenamiento en tu instancia, agrega más nodos a ella. Ten en cuenta que agregar un nodo no aumenta la cantidad de réplicas (que se fijan para una configuración determinada), sino que aumenta los recursos que tiene cada réplica en la instancia. Agregar nodos le da a cada réplica más CPU y RAM, lo que aumenta el rendimiento de la réplica (es decir, puede haber más lecturas y escrituras por segundo). Efectivamente, el número de servidores de Cloud Spanner en cada una de las réplicas de la instancia es el mismo que el número de nodos de esta. Por lo tanto, la cantidad total de servidores en una instancia de Cloud Spanner es la cantidad de nodos que la instancia ha multiplicado por el número de réplicas en la instancia.

Configuraciones regionales

Los servicios de Google Cloud Platform se encuentran disponibles en ubicaciones de América del Norte, América del Sur, Europa, Asia y Australia. Si tus usuarios y servicios se encuentran en una región única, elige una configuración de instancia regional para las lecturas y escrituras de latencia más baja.

Configuraciones disponibles

Cloud Spanner ofrece las siguientes configuraciones de instancias regionales:

Nombre de la región Descripción de la región
Norteamérica
us-central1 Iowa
us-east4 Virginia del Norte
northamerica-northeast1 Montreal
Europa
europe-west1 Bélgica
europe-west4 Países Bajos
Asia
asia-south1 Bombay
asia-east1 Taiwán
asia-northeast1 Tokio

Para cualquier configuración regional, Cloud Spanner mantiene 3 réplicas de lectura y escritura, cada una dentro de una zona de disponibilidad de Google Cloud Platform en dicha región. Cada réplica de lectura y escritura contiene una copia completa de tu base de datos operativa que puede atender peticiones de lectura y escritura o de solo lectura. Cloud Spanner usa réplicas en diferentes zonas de forma que, si se produce un fallo en una sola zona, la base de datos sigue disponible.

Replicación

Las configuraciones regionales contienen exactamente 3 réplicas de lectura y escritura, cada una de las cuales puede votar.

Como se describe en el apartado sobre replicación de Cloud Spanner, cada mutación de Cloud Spanner requiere un cuórum de escritura compuesto por la mayoría de las réplicas de votación. Los cuórums de escritura se forman a partir de dos de las tres réplicas en configuraciones regionales.

Prácticas recomendadas

Para obtener un rendimiento óptimo, recomendamos lo siguiente:

  • Seguir las mejores prácticas de diseño de esquemas.
  • Colocar los recursos informáticos críticos dentro de la misma región que tu instancia de Cloud Spanner.
  • Proporcionar suficientes nodos de Cloud Spanner para mantener el uso general de la CPU por debajo del 75 %.

Rendimiento

Cuando se siguen las mejores prácticas descritas anteriormente, cada nodo de Cloud Spanner puede proporcionar hasta 10.000 consultas por segundo (QPS) de lecturas o 2000 QPS de escrituras (escribir filas únicas a 1 KB de datos por fila).

Configuraciones multirregionales

Como se describe anteriormente, las configuraciones regionales de Cloud Spanner replican datos entre múltiples zonas dentro de una sola región. Sin embargo, si tu aplicación a menudo debe leer datos de múltiples ubicaciones geográficas (por ejemplo, para enviar datos a usuarios en Norteamérica y Asia), o si tus escrituras se originan en una ubicación diferente que las lecturas (por ejemplo, si tienes grandes cargas de trabajo de escritura en Norteamérica y grandes cargas de trabajo de lectura en Europa), la configuración regional podría no ser óptima.

Las configuraciones multirregionales te permiten replicar los datos de la base de datos no solo en múltiples zonas, sino también en zonas de múltiples regiones, tal como define la configuración de la instancia. Estas réplicas adicionales permiten leer datos con baja latencia desde varias ubicaciones cercanas o dentro de las regiones en la configuración. Sin embargo, hay pros y contras, ya que, en una configuración multirregional, las réplicas de cuórum (lectura y escritura) se distribuyen por más de una región. Por lo tanto, pueden incurrir en latencia de red adicional cuando estas réplicas se comunican entre sí para votar escrituras. En otras palabras, las configuraciones multirregionales permiten que tu aplicación obtenga lecturas más rápidas en más lugares mediante un pequeño aumento en la latencia de escritura.

Configuraciones disponibles

Un continente

Nombre de la configuración Ubicación de la configuración Región líder predeterminada Región de lectura y escritura adicional
nam3 Norteamérica us-east4 us-east1

Tres continentes

Nombre de la configuración Ubicaciones de la configuración Región líder predeterminada Región de lectura y escritura adicional Regiones de solo lectura
nam-eur-asia1 América del Norte, Europa y Asia us-central1 us-central2
(Oklahoma: región privada de GCP)
europe-west1,
asia-east1

Ventajas

Las instancias multirregionales ofrecen los siguientes beneficios principales:

  • Disponibilidad del 99,999 %: mayor que la disponibilidad del 99,99 % que brindan las configuraciones regionales de Cloud Spanner.

  • Distribución de datos: Cloud Spanner replica automáticamente tus datos entre regiones con sólidas garantías de coherencia. Esto permite que tus datos se almacenen donde se usan, lo que puede reducir la latencia y mejorar la experiencia del usuario.

  • Coherencia externa: aunque Cloud Spanner se replica en ubicaciones geográficamente distantes, puedes seguir usándolo como si fuera una base de datos que se ejecuta en una sola máquina. Se garantiza que las transacciones se pueden serializar, y el orden de las transacciones dentro de la base de datos es el mismo que el orden en que los clientes observan que las transacciones se han realizado. La coherencia externa es una garantía mayor que la "coherencia sólida" que ofrecen otros productos. Lee más acerca de esta propiedad en TrueTime y coherencia externa.

Replicación

Cada configuración multirregional contiene dos regiones designadas como regiones de lectura y escritura, cada una de las cuales contiene dos réplicas de lectura y escritura. Una de estas regiones de lectura y escritura se designa como la región líder predeterminada, lo que significa que contiene las réplicas líderes de tu base de datos. Cloud Spanner también coloca una réplica testigo en una tercera región llamada región testigo.

Cada vez que un cliente emite una mutación a tu base de datos, se crean formularios de cuórum de escritura, que consisten en una de las réplicas de la región líder predeterminada y dos de las cuatro réplicas de votación adicionales. (El cuórum podría estar formado por réplicas de dos o tres de las regiones que conforman tu configuración, dependiendo de las otras réplicas que participen en la votación.) Aparte de estas 5 réplicas de votación, la configuración también puede contener réplicas de solo lectura para lecturas de latencia baja. Las regiones que contienen réplicas de solo lectura se denominan regiones de solo lectura.

En general, las regiones de votación en una configuración multirregional se encuentran geográficamente cerca (a menos de 1500 kilómetros unas de otras) para formar un cuórum de latencia baja que permite unas lecturas rápidas (consulta Why Read-Only and Witness Replicas? para obtener más información). Sin embargo, las regiones siguen estando lo suficientemente lejos (normalmente, al menos a unos pocos cientos de kilómetros) para evitar fallos en las coordenadas.

En las siguientes secciones se describe cada uno de estos tipos de regiones más detalladamente y se enseña a colocar las cargas de trabajo de escritura y lectura adecuadamente.

Tipos de región

Regiones de lectura y escritura

Como se describe anteriormente, cada configuración multirregional contiene dos regiones de lectura y escritura, de las cuales cada una contiene dos réplicas de lectura y escritura. Una de estas regiones de lectura y escritura se designa como la región líder predeterminada donde se ubican las réplicas líderes. En condiciones normales, cuando todas las réplicas están disponibles, la región líder predeterminada contiene las réplicas líderes y, por tanto, es donde se procesan primero las escrituras. En caso de fallo en el liderazgo, otras réplicas de la región líder predeterminada asumen automáticamente el liderazgo. De hecho, realizan controles de salud sobre sí mismas y pueden abandonar preventivamente el liderazgo si detectan que no son saludables.

La segunda región de lectura y escritura contiene las réplicas adicionales aptas para ser líderes. En el caso poco probable de que se pierda la región líder predeterminada, las nuevas réplicas líderes se eligen a partir de la segunda región de lectura y escritura.

Regiones de solo lectura

Las regiones de solo lectura contienen réplicas de solo lectura, que pueden brindar lecturas de latencia baja a los clientes que se encuentren fuera de las regiones de lectura y escritura.

Regiones testigo

Una región testigo contiene una réplica testigo, que sirve para votar escrituras. Estas regiones se vuelven importantes en el raro caso de que las regiones de lectura y escritura no estén disponibles.

Prácticas recomendadas

Para obtener un rendimiento óptimo, recomendamos lo siguiente:

  • Seguir las mejores prácticas de diseño de esquemas.
  • Para obtener una latencia de escritura óptima, coloca los recursos informáticos para cargas de trabajo con muchas operaciones de escritura dentro o cerca de la región líder predeterminada.
  • Para lograr un rendimiento de lectura óptimo fuera de la región líder predeterminada, usa un estado obsoleto de al menos 15 segundos.
  • Para evitar la dependencia de una sola región para tus cargas de trabajo, coloca los recursos informáticos críticos en al menos dos regiones.
  • Aprovisiona suficientes nodos de Cloud Spanner para mantener el uso general de la CPU por debajo del 45 % en cada región.

Rendimiento

Cada configuración de Cloud Spanner tiene características de rendimiento ligeramente diferentes en función de la topología de replicación.

Cuando se siguen las prácticas recomendadas descritas anteriormente, cada nodo de Cloud Spanner puede proporcionar el siguiente rendimiento aproximado:

Configuración multirregional Valor máximo de lectura aproximado (QPS por región) Valores máximos de escritura aproximados (total de QPS)
nam3 7000 1800
nam-eur-asia1 7000 1000

Ten en cuenta que se proporciona una guía de lectura por región (ya que las lecturas se pueden enviar desde cualquier lugar), mientras que la orientación por escritura es para toda la configuración. La orientación por escritura da por sentado que estás escribiendo filas únicas a 1 KB de datos por fila.

Pros y contras: configuraciones regionales frente a multirregionales

Configuración Disponibilidad Latencia Coste Localización de datos
Regional 99,99 % Menor latencia de escritura dentro de la región. Coste más bajo (ver precios). Permite la gestión de datos geográficos.
Multirregional 99,999 % Menores latencias de lectura de múltiples regiones geográficas. Mayor coste (ver precios). Distribuye datos por varias regiones dentro de la configuración.